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
SITE_ID
que se usará para construir los subdominios predeterminados proporcionados por Firebase para el sitio:
SITE_ID .web.app
SITE_ID .firebaseapp.com
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.
Eliminar un sitio secundario
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
SITE_ID
que el ID de su proyecto de Firebase.
Paso 3 : configure objetivos de implementación para sus sitios
TARGET_NAME
en su archivo de configuración firebase.json
y en sus comandos de Firebase CLI para probar o implementar en sus sitios.
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
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
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
.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
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
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. |