Los objetivos de implementación son identificadores de nombres cortos (que usted mismo define) para los recursos de Firebase en su proyecto de Firebase, como un sitio de hosting con recursos estáticos únicos o un grupo de instancias de Realtime Database que comparten las mismas reglas de seguridad.
Los destinos de implementación son útiles cuando tienes varios sitios de alojamiento , varios depósitos de Cloud Storage o varias instancias de Realtime Database . Con los objetivos de implementación, Firebase CLI puede implementar configuraciones en un recurso o grupo de recursos de Firebase específico en su proyecto, como:
- La configuración de hosting para cada uno de tus sitios de Hosting
- Activos estáticos de su directorio de proyectos para cada uno de sus sitios de Hosting
- Reglas de seguridad compartidas por varias instancias de Realtime Database o varios depósitos de Cloud Storage
Para configurar un destino de implementación:
- Aplique un
TARGET_NAME
al recurso de Firebase o al grupo de recursos de Firebase de destino. - En su archivo
firebase.json
, haga referencia alTARGET_NAME
asociado cuando esté configurando los ajustes para cada recurso o grupo de recursos.
Cuando ejecutas comandos de Firebase CLI (como firebase deploy
), Firebase CLI empareja cada TARGET_NAME
con sus recursos de Firebase asociados. Luego, la CLI comunica a su proyecto de Firebase la configuración de cada recurso.
Configura objetivos de implementación para tus recursos de Firebase
Con Firebase CLI, aplique un TARGET_NAME
(identificador de nombre corto que usted mismo define) a un recurso de Firebase o un grupo de recursos de Firebase. Firebase admite objetivos de implementación para:
- Sitios de alojamiento de Firebase
- Almacenamiento en la nube para depósitos de almacenamiento de Firebase
- Instancias de base de datos en tiempo real de Firebase
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.
Configurar objetivos de implementación para Hosting
Para crear un destino de implementación y aplicar un TARGET_NAME
a un sitio de alojamiento, ejecute el siguiente comando CLI:
firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER
Donde los parámetros son:
TYPE : el tipo de recurso de Firebase relevante
- Para sitios de Firebase Hosting, utilice
hosting
.
- Para sitios de Firebase Hosting, utilice
TARGET_NAME : un nombre único 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
Configurar objetivos 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, ejecute el siguiente comando CLI:
firebase target:apply TYPE TARGET_NAME RESOURCE-1_IDENTIFIER RESOURCE-2_IDENTIFIER ...
Donde los parámetros son:
TYPE : el tipo de recurso de Firebase relevante
- Para depósitos de Cloud Storage, use
storage
. - Para instancias de Realtime Database, utilice
database
.
- Para depósitos de Cloud Storage, use
TARGET_NAME : un nombre único para el recurso o grupo de recursos que comparten reglas de seguridad.
RESOURCE_IDENTIFIER : los identificadores de los recursos que figuran en su proyecto de Firebase (como nombres de depósitos de almacenamiento o ID de instancias de bases de datos) que comparten las mismas reglas de seguridad.
Por ejemplo, puedes aplicar TARGET_NAME
de main
a un grupo de tres depósitos regionales de Cloud Storage (que comparten las mismas reglas de seguridad) ejecutando el siguiente comando:
firebase target:apply storage main myproject.appspot.com myproject-eu myproject-ja
Tenga en cuenta que myproject.appspot.com
es el identificador del depósito predeterminado, mientras que myproject-eu
y myproject-ja
son dos depósitos adicionales creados en el proyecto de Firebase.
Configure su archivo firebase.json para usar objetivos de implementación
Después de configurar los objetivos de implementación para tus recursos de Firebase, haz referencia a cada TARGET_NAME
aplicado en tu archivo de configuración firebase.json
:
- Cree una matriz de objetos de configuración para cada
TYPE
de recurso de Firebase (hosting
,storage
odatabase
). - En las matrices, especifique el
target
(usandoTARGET_NAME
) y defina su configuración para el recurso o grupo de recursos de Firebase asociado.
Continuando con los ejemplos anteriores, donde su proyecto Firebase tiene dos sitios de Hosting y tres depósitos de Cloud Storage (que comparten las mismas reglas de seguridad), su archivo firebase.json
se vería así:
{ "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 tiene varias configuraciones para sus recursos, puede crear varios destinos de implementación y especificar cada uno en el archivo firebase.json
. Todos los recursos asociados se implementarán juntos cuando ejecute firebase deploy
.
Administrar objetivos de implementación
La configuración para los objetivos de implementación se almacena en el archivo .firebaserc
en el directorio de su proyecto. Puede administrar los objetivos de implementación de su proyecto ejecutando cualquiera de los siguientes comandos desde la raíz del directorio de su proyecto.
Dominio | Descripción |
---|---|
firebase target | Enumera los objetivos de implementación para el directorio de su proyecto actual |
firebase target:remove \ | Elimina un recurso del objetivo al que ha sido asignado |
firebase target:clear \ | Elimina todos los recursos o el sitio de alojamiento del destino especificado |
Los comandos target:remove
y target:clear
actualizan automáticamente la configuración del destino de implementación en el archivo .firebaserc
en el directorio de su proyecto.
Pruebe localmente antes de implementar
Ejecute cualquiera de los siguientes comandos desde la raíz del directorio de su proyecto.
Dominio | Descripción |
---|---|
firebase emulators:start | Emula todos los recursos configurados en el directorio de su proyecto. |
firebase emulators:start \ | Emula sólo el contenido de Hosting y la configuración del sitio de Hosting especificado |
firebase emulators:start \ | Emula solo el archivo de reglas para el destino de Cloud Storage especificado |
firebase emulators:start \ | Emula solo el archivo de reglas para el destino de Realtime Database especificado |
Obtenga más información sobre cómo configurar y usar Firebase Local Emulator Suite .
Implementar recursos específicos de Firebase
Ejecute cualquiera de los siguientes comandos desde la raíz del directorio de su proyecto.
Dominio | Descripción |
---|---|
firebase deploy | Crea una versión de todos los recursos implementables en el directorio de su proyecto. |
firebase deploy \ | Implementa solo el contenido de Hosting y la configuración del sitio de Hosting especificado en el canal en vivo del sitio. |
firebase hosting:channel:deploy CHANNEL_ID \ | Implementa solo el contenido de Hosting y la configuración del sitio de Hosting especificado en un canal de vista previa para el sitio. |
firebase deploy \ | Implementa solo el archivo de reglas para el destino de Cloud Storage especificado. |
firebase deploy \ | Implementa solo el archivo de reglas para el destino de Realtime Database especificado |