Puedes 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.
- Cada sitio tiene su propia configuración de alojamiento .
- Cada sitio alberga su propia colección de contenido.
- Cada sitio puede tener uno o más dominios asociados .
Al configurar varios sitios de Hosting dentro del mismo proyecto de Firebase, puedes compartir más fácilmente 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 : agregue sitios adicionales
Agregue sitios adicionales a un proyecto de Firebase mediante uno de los siguientes métodos:
Utilice el flujo de trabajo en la página Alojamiento de Firebase console
Utilice el comando de 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ás un SITE_ID
que se usará para construir los subdominios predeterminados proporcionados por Firebase para el sitio:
-
SITE_ID .web.app
-
SITE_ID .firebaseapp.com
Dado que SITE_ID
se utiliza para estas URL, el ID del sitio tiene los siguientes requisitos:
- Debe ser una etiqueta de nombre de host válida, lo que significa que no puede contener archivos
.
,_
, 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 ofrecer el mismo contenido y configuración en varias URL.
Eliminar un sitio secundario
Elimine sitios no deseados de un proyecto de Firebase mediante uno de los siguientes métodos:
Utilice el flujo de trabajo en la página Alojamiento de Firebase console
Utilice el comando de Firebase CLI:
firebase hosting:sites:delete SITE_ID
Utilice la API REST de alojamiento:
projects.sites.delete
Tenga en cuenta que no puede eliminar el sitio predeterminado, que tiene el mismo SITE_ID
que el ID de su proyecto de Firebase.
Paso 3 : configure objetivos 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é configuraciones se deben implementar en cada sitio. Con los objetivos de implementación , puede identificar de forma única un sitio específico con TARGET_NAME
en su archivo de configuración firebase.json
y en sus comandos de Firebase CLI para probar o implementar en sus sitios.
Para crear un destino de implementación y aplicar un TARGET_NAME
a un sitio de alojamiento, 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 usted mismo ha definido) para el sitio de alojamiento en el que está implementando
RESOURCE_IDENTIFIER : el
SITE_ID
del sitio de alojamiento que figura en su proyecto de Firebase
Por ejemplo, si creaste dos sitios ( myapp-blog
y myapp-app
) en tu proyecto de Firebase, puedes 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 objetivos de implementación se almacena en el archivo .firebaserc
en el directorio de su proyecto, por lo que solo necesita configurar los objetivos de implementación una vez por proyecto.
Paso 4 : Defina la configuración de hosting para cada sitio
Utilice el TARGET_NAME
aplicado de un sitio cuando defina su configuración de alojamiento en su archivo firebase.json
.
Si su archivo
firebase.json
define la configuración para varios 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 del directorio de su proyecto local.
Dominio | Descripción |
---|---|
firebase emulators:start --only hosting | Emula el contenido de alojamiento y la configuración del sitio de alojamiento predeterminado en una URL alojada localmente |
firebase emulators:start --only hosting: TARGET_NAME | Emula el contenido de alojamiento y la configuración del sitio de alojamiento especificado en una URL alojada localmente |
firebase hosting:channel:deploy \ | Implementa el contenido de alojamiento y la configuración del sitio de alojamiento predeterminado en una URL de vista previa. |
firebase hosting:channel:deploy \ | Implementa el contenido de Hosting y la configuración del sitio de Hosting especificado en una URL de vista previa |
firebase deploy --only hosting | Implementa el contenido y la configuración de Hosting en el canal en vivo de todos los sitios de Hosting 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 | Ofrece 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 | Ofrece el contenido de alojamiento y la configuración del sitio de alojamiento especificado en una URL alojada localmente. |