获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

Comparta los recursos del proyecto en varios sitios

Puede configurar uno o más sitios de Firebase Hosting en un solo proyecto de Firebase. Dado que todos los sitios están en el mismo proyecto de Firebase, todos los sitios pueden acceder a los demás recursos de Firebase del proyecto.

Al configurar varios sitios de hospedaje dentro del mismo proyecto de Firebase, puede compartir más fácilmente los recursos de Firebase entre sitios y aplicaciones relacionados. Por ejemplo, si configura su blog, panel de administración y aplicación pública como sitios individuales en el mismo proyecto de Firebase, todos pueden compartir la misma base de datos de usuarios de Firebase Authentication y, al mismo tiempo, tener sus propios dominios o contenido únicos.

Paso 1 : actualice su versión de Firebase CLI

Acceda a las funciones más recientes de Firebase Hosting actualizando a la última versión de Firebase CLI .

Paso 2 : Agregar sitios adicionales

Agregue sitios adicionales a un proyecto de Firebase mediante uno de los siguientes métodos:

  • Usa el flujo de trabajo en la página Hosting de Firebase console.

  • Use el comando Firebase CLI: firebase hosting:sites:create SITE_ID

  • Utilice la API REST de alojamiento: projects.sites.create

Para cada uno de estos métodos, especificará un SITE_ID que se usa para construir los subdominios predeterminados proporcionados por Firebase para el sitio:

  • SITE_ID .web.app
  • SITE_ID .firebaseapp.com

Debido a que SITE_ID se usa para estas URL, la ID del sitio tiene los siguientes requisitos:

  • Debe ser una etiqueta de nombre de host válida, lo que significa que no puede contener . , _ , etc
  • Debe tener 30 caracteres o menos
  • Debe ser globalmente único dentro de Firebase

Para cada sitio, también puede agregar opcionalmente dominios personalizados para servir el mismo contenido y configuración a varias URL.

Eliminar un sitio secundario

Elimine los sitios no deseados de un proyecto de Firebase mediante uno de los siguientes métodos:

  • Usa el flujo de trabajo en la página Hosting de Firebase console.

  • Use el comando Firebase CLI: firebase hosting:sites:delete SITE_ID

  • Use la API REST de hospedaje: projects.sites.delete

Tenga en cuenta que no puede eliminar el sitio predeterminado, que tiene el mismo SITE_ID que su ID de proyecto de Firebase.

Paso 3 : configure destinos de implementación para sus sitios

Cuando tiene varios sitios y ejecuta los comandos de implementación de Firebase CLI, la CLI necesita una forma de comunicar qué configuración debe implementarse en cada sitio. Con los destinos de implementación, puede identificar de manera única un sitio específico con TARGET_NAME en su archivo de configuración firebase.json y en los comandos de la CLI de Firebase para probar o implementar en sus sitios.

Para crear un destino de implementación y aplicar TARGET_NAME a un sitio de hospedaje, ejecute el siguiente comando CLI desde la raíz del directorio de su proyecto:

firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER

Donde los parámetros son:

  • TARGET_NAME : un nombre único (que ha definido usted mismo) para el sitio de alojamiento que está implementando

  • RESOURCE_IDENTIFIER : el SITE_ID del sitio de hospedaje que figura en su proyecto de Firebase

Por ejemplo, si creó dos sitios ( myapp-blog y myapp-app ) en su proyecto de Firebase, podría aplicar un TARGET_NAME único ( blog y app , respectivamente) a cada sitio ejecutando los siguientes comandos:

firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app

La configuración de los destinos de implementación se almacena en el archivo .firebaserc en el directorio de su proyecto, por lo que solo necesita configurar los destinos de implementación una vez por proyecto.

Paso 4 : Defina la configuración de alojamiento para cada sitio

Usa el TARGET_NAME aplicado de un sitio cuando estés definiendo su configuración de hospedaje en tu archivo firebase.json .

  • Si su archivo firebase.json define la configuración para múltiples sitios, use un formato de matriz:

    {
      "hosting": [ {
          "target": "blog",  // "blog" is the applied TARGET_NAME for the Hosting site "myapp-blog"
          "public": "blog/dist",  // contents of this folder are deployed to the site "myapp-blog"
    
          // ...
        },
        {
          "target": "app",  // "app" is the applied TARGET_NAME for the Hosting site "myapp-app"
          "public": "app/dist",  // contents of this folder are deployed to the site "myapp-app"
    
          // ...
    
          "rewrites": [...]  // You can define specific Hosting configurations for each site
        }
      ]
    }
    
  • Si su archivo firebase.json define la configuración para un solo sitio, no es necesario usar un formato de matriz:

    {
      "hosting": {
          "target": "blog",
          "public": "dist",
    
          // ...
    
          "rewrites": [...]
      }
    }
    

Paso 5 : pruebe localmente, obtenga una vista previa de los cambios e implemente en sus sitios

Ejecute cualquiera de los siguientes comandos desde la raíz de su directorio de proyecto local.

Dominio Descripción
firebase emulators:start --only hosting Emula el contenido de Hosting y la configuración del sitio de Hosting predeterminado en una URL alojada localmente
firebase emulators:start --only hosting: TARGET_NAME Emula el contenido de Hosting y la configuración del sitio de Hosting especificado en una URL alojada localmente
firebase hosting:channel:deploy \
CHANNEL_ID
Implementa el contenido de Hosting y la configuración del sitio de Hosting predeterminado en una URL de vista previa
firebase hosting:channel:deploy \
CHANNEL_ID --only TARGET_NAME
Implementa el contenido de alojamiento y la configuración del sitio de alojamiento especificado en una URL de vista previa
firebase deploy --only hosting Implementa el contenido y la configuración de hospedaje en el canal en vivo de todos los sitios de hospedaje configurados en firebase.json
firebase deploy --only hosting: TARGET_NAME Implementa el contenido y la configuración de Hosting en el canal en vivo del sitio de Hosting especificado
Dominio Descripción
(no recomendado; use emulators:start en su lugar)
firebase serve --only hosting
Sirve el contenido de alojamiento y la configuración del sitio de alojamiento predeterminado en una URL alojada localmente
(no recomendado; use emulators:start en su lugar)
firebase serve --only hosting: TARGET_NAME
Sirve el contenido de Hosting y la configuración del sitio de Hosting especificado en una URL alojada localmente