Los destinos de implementación son identificadores con nombres cortos (que tú defines) para los recursos de Firebase de tu proyecto en la plataforma, como sitios de Hosting con recursos estáticos únicos o grupos de instancias de Realtime Database que comparten las mismas reglas de seguridad.
Los destinos de implementación son útiles cuando tienes varios sitios de Hosting, varios buckets de Cloud Storage o varias instancias de Realtime Database. Con estos destinos, Firebase CLI puede implementar una configuración en un recurso o grupo de recursos específico de Firebase de tu proyecto, por ejemplo:
- La configuración de alojamiento para cada uno de tus sitios de Hosting
- Recursos estáticos del directorio de tu proyecto para cada uno de tus sitios de Hosting
- Reglas de seguridad compartidas por varias instancias de Realtime Database o varios buckets de Cloud Storage
Sigue estos pasos para configurar un destino de implementación:
- Aplica un
TARGET_NAME
al recurso de Firebase o al grupo de recursos de Firebase de destino. - En el archivo
firebase.json
, crea una referencia al parámetroTARGET_NAME
asociado cuando configures cada recurso o grupo de recursos.
Cuando ejecutas comandos de CLI de Firebase (como
firebase deploy
), Firebase CLI vincula cada TARGET_NAME
con sus
recursos de Firebase asociados. Luego, la CLI informa a tu proyecto de Firebase la configuración de cada recurso.
Configura destinos de implementación para tus recursos de Firebase
Con Firebase CLI, aplica un parámetro TARGET_NAME
(identificador con nombre corto que
tú defines) a un recurso o grupo de recursos de Firebase.
Firebase admite destinos de implementación para lo siguiente:
- Sitios de Firebase Hosting
- Buckets de almacenamiento de Cloud Storage for Firebase
- Instancias de Firebase Realtime Database
La configuración de los destinos de implementación se almacena en el archivo .firebaserc
del directorio de tu proyecto, de manera que solo es necesario configurar destinos de implementación una vez por proyecto.
Configura destinos de implementación para Hosting
Si quieres crear un destino de implementación y aplicar un parámetro TARGET_NAME
a un sitio de Hosting, ejecuta
el siguiente comando de la CLI:
firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER
Los parámetros correspondientes son los siguientes:
TYPE: Es el tipo pertinente de recurso de Firebase.
- Para sitios de Firebase Hosting, usa
hosting
.
- Para sitios de Firebase Hosting, usa
TARGET_NAME: Es un nombre único del sitio de Hosting en el que realizarás la implementación.
RESOURCE_IDENTIFIER: Es el
SITE_ID
del sitio de Hosting tal como aparece en tu 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
Configura destinos de implementación para Cloud Storage o Realtime Database
Para crear un destino de implementación y aplicar un TARGET_NAME
a un conjunto de
recursos de Cloud Storage o Realtime Database, ejecuta el siguiente comando
de la CLI:
firebase target:apply TYPE TARGET_NAME RESOURCE-1_IDENTIFIER RESOURCE-2_IDENTIFIER ...
Los parámetros correspondientes son los siguientes:
TYPE: Es el tipo pertinente de recurso de Firebase.
- Para los buckets de Cloud Storage, usa
storage
. - Para instancias de Realtime Database, usa
database
.
- Para los buckets de Cloud Storage, usa
TARGET_NAME: Es un nombre único del recurso o grupo de recursos que comparten reglas de seguridad.
RESOURCE_IDENTIFIER: Son los identificadores para los recursos tal como se detallan en tu proyecto de Firebase (como nombres de buckets de almacenamiento o ID de instancia de base de datos) que comparten mismas reglas de seguridad.
Por ejemplo, puedes aplicar el TARGET_NAME
de main
a un grupo de tres
buckets regionales de Cloud Storage (que tienen las mismas reglas de seguridad)
ejecutando el siguiente comando:
firebase target:apply storage main myproject.appspot.com myproject-eu myproject-ja
Ten en cuenta que myproject.appspot.com
es el identificador del bucket predeterminado,
mientras que myproject-eu
y myproject-ja
son dos buckets adicionales creados en
el proyecto de Firebase.
Configura tu archivo firebase.json para usar destinos de implementación
Después de configurar los destinos de implementación para tus recursos de Firebase, haz una referencia a cada
parámetro TARGET_NAME
que se aplicó en tu
archivo de configuración firebase.json
:
- Crea un array de objetos de configuración para cada
TYPE
de recurso de Firebase (hosting
,storage
odatabase
). - En los arrays, especifica el
target
(con el parámetroTARGET_NAME
) y define la configuración del recurso o grupo de recursos de Firebase asociados.
Siguiendo con los ejemplos anteriores, si tu proyecto de Firebase tiene dos
sitios de Hosting y tres buckets de Cloud Storage (que comparten las mismas
reglas de seguridad), tu archivo firebase.json
tendrá el siguiente aspecto:
{ "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 } ] } { "storage": [ { "target": "main", // "main" is the applied TARGET_NAME for the group of Cloud Storage buckets "rules": "storage.main.rules" // the file that contains the shared security rules } ] }
Si tienes varias opciones de configuración para tus recursos, puedes crear varios destinos de implementación y especificar cada uno en el archivo firebase.json
. Todos los recursos asociados se implementarán juntos cuando ejecutes firebase deploy
.
Administra destinos de implementación
La configuración de los destinos de implementación se almacena en el archivo .firebaserc
del directorio de tu proyecto. Puedes administrar los destinos de implementación de tu proyecto mediante la ejecución de cualquiera de los siguientes comandos desde la raíz del directorio de tu proyecto.
Comando | Descripción |
---|---|
firebase target
|
Crea una lista de destinos de implementación para el directorio de tu proyecto actual. |
firebase target:remove \
|
Quita un recurso del destino al cual se asignó. |
firebase target:clear \
|
Quita todos los recursos o el sitio de Hosting del destino especificado. |
Los comandos target:remove
y target:clear
actualizan automáticamente la configuración de destino de implementación en el archivo .firebaserc
del directorio de tu proyecto.
Realiza pruebas locales antes de implementar
Ejecuta cualquiera de los siguientes comandos desde la raíz del directorio de tu proyecto:
Comando | Descripción |
---|---|
firebase emulators:start
|
Emula todos los recursos configurados en el directorio del proyecto. |
firebase emulators:start \ |
Solo emula el contenido y la configuración de Hosting del sitio de Hosting especificado. |
firebase emulators:start \
|
Solo emula el archivo de reglas para el destino de Cloud Storage especificado. |
firebase emulators:start \
|
Solo emula el archivo de reglas para el destino de Realtime Database especificado. |
Obtén más información para configurar y usar Firebase Local Emulator Suite.
Implementa recursos específicos de Firebase
Ejecuta cualquiera de los siguientes comandos desde la raíz del directorio de tu proyecto:
Comando | Descripción |
---|---|
firebase deploy
|
Crea una versión de todos los recursos del directorio del proyecto que pueden implementarse. |
firebase deploy \
|
Solo implementa el contenido y la configuración de Hosting del sitio de Hosting especificado en el canal activo del sitio. |
firebase hosting:channel:deploy CHANNEL_ID \ |
Solo implementa el contenido y la configuración de Hosting del sitio de Hosting especificado en un canal de vista previa del sitio. |
firebase deploy \
|
Solo implementa el archivo de reglas para el destino de Cloud Storage especificado. |
firebase deploy \
|
Solo implementa el archivo de reglas para el destino de Realtime Database especificado. |