Les cibles de déploiement sont des identifiants courts (que vous définissez vous-même) pour les ressources Firebase de votre projet Firebase, comme un site Hosting avec des éléments statiques uniques ou un groupe d'instances Realtime Database qui partagent les mêmes règles de sécurité.
Les cibles de déploiement sont utiles lorsque vous disposez de plusieurs sites Hosting, de plusieurs buckets Cloud Storage ou de plusieurs instances Realtime Database. Avec les cibles de déploiement, la CLI Firebase peut déployer des paramètres sur un élément spécifique Ressource ou groupe de ressources Firebase dans votre projet, par exemple:
- La configuration d'hébergement de chacun de vos sites Hosting
- Les éléments statiques de votre répertoire de projet pour chacun de vos Hosting sites
- Règles de sécurité partagées par plusieurs instances Realtime Database ou plusieurs buckets Cloud Storage
Pour configurer une cible de déploiement:
- Appliquer un
TARGET_NAME
à l'environnement Firebase ciblé ressource ou groupe de ressources Firebase. - Dans votre fichier
firebase.json
, référez-vous auTARGET_NAME
associé lorsque vous configurez les paramètres de chaque ressource ou groupe de ressources.
Lorsque vous exécutez des commandes CLI Firebase (comme firebase deploy
), la CLI Firebase associe chaque TARGET_NAME
à ses ressources Firebase associées. La CLI communique ensuite avec votre instance
pour projeter les paramètres de chaque ressource.
Configurer des cibles de déploiement pour vos ressources Firebase
À l'aide de la CLI Firebase, appliquez un TARGET_NAME
(identifiant à court nom que vous définissez vous-même) à une ressource Firebase ou à un groupe de ressources Firebase.
Firebase est compatible avec les cibles de déploiement pour :
- Firebase Hosting sites
- Buckets de stockage Cloud Storage for Firebase
- Firebase Realtime Database instances
Les paramètres des cibles de déploiement sont stockés dans le fichier .firebaserc
du répertoire de votre projet. Vous n'avez donc besoin de configurer les cibles de déploiement qu'une seule fois par projet.
Configurer des cibles de déploiement pour Hosting
Pour créer une cible de déploiement et appliquer un TARGET_NAME
à un site Hosting, exécutez la commande suivante :
la commande CLI suivante:
firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER
Où se trouvent les paramètres:
TYPE : type de ressource Firebase approprié
- Pour les sites Firebase Hosting, utilisez
hosting
.
- Pour les sites Firebase Hosting, utilisez
TARGET_NAME : nom unique du site Hosting que vous le déploiement sur
RESOURCE_IDENTIFIER :
SITE_ID
du site Hosting tel que listé dans votre projet Firebase
Par exemple, si vous avez créé deux sites (myapp-blog
et myapp-app
) dans votre projet Firebase, vous pouvez appliquer un TARGET_NAME
unique (blog
et app
, respectivement) à chaque site en exécutant les commandes suivantes :
firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app
Configurer des cibles de déploiement pour Cloud Storage ou Realtime Database
Pour créer une cible de déploiement et appliquer un TARGET_NAME
à un ensemble de ressources Cloud Storage ou Realtime Database, exécutez la commande CLI suivante :
firebase target:apply TYPE TARGET_NAME RESOURCE-1_IDENTIFIER RESOURCE-2_IDENTIFIER ...
Où se trouvent les paramètres:
TYPE : type de ressource Firebase concerné
- Pour les buckets Cloud Storage, utilisez
storage
. - Pour les instances Realtime Database, utilisez
database
.
- Pour les buckets Cloud Storage, utilisez
TARGET_NAME : nom unique de la ressource ou du groupe de ressources qui partagent des règles de sécurité
RESOURCE_IDENTIFIER : identifiants des ressources sous la forme dans votre projet Firebase (comme les noms des buckets de stockage ou des bases de données ID d'instance) qui partagent tous les mêmes règles de sécurité
Par exemple, vous pouvez appliquer le TARGET_NAME
de main
à un groupe de trois buckets Cloud Storage régionaux (qui partagent tous les mêmes règles de sécurité) en exécutant la commande suivante :
firebase target:apply storage main myproject.appspot.com myproject-eu myproject-ja
Notez que myproject.appspot.com
est l'identifiant du bucket par défaut, tandis que myproject-eu
et myproject-ja
sont deux buckets supplémentaires créés dans le projet Firebase.
Configurer le fichier firebase.json pour utiliser des cibles de déploiement
Une fois que vous avez configuré les cibles de déploiement pour vos ressources Firebase,
a appliqué TARGET_NAME
dans votre
Fichier de configuration firebase.json
:
- Créez un tableau d'objets de configuration pour chaque ressource Firebase
TYPE
(hosting
,storage
oudatabase
). - Dans les tableaux, spécifiez le
target
(à l'aide duTARGET_NAME
) et définissez vos paramètres pour la ressource ou le groupe de ressources Firebase associé.
En reprenant les exemples ci-dessus, où votre projet Firebase comporte deux
Hosting sites et trois ensembles Cloud Storage (partageant le même
règles de sécurité), votre fichier firebase.json
se présente comme suit:
{ "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 vous disposez de plusieurs configurations pour vos ressources, vous pouvez créer plusieurs
des cibles de déploiement et spécifiez chacune d'elles dans le fichier firebase.json
. Toutes les ressources associées seront déployées ensemble lorsque vous exécuterez firebase deploy
.
Gérer les cibles de déploiement
Les paramètres des cibles de déploiement sont stockés dans le fichier .firebaserc
de votre
dans le répertoire du projet. Vous pouvez gérer les cibles de déploiement de votre projet en exécutant l'une des commandes suivantes à partir de la racine du répertoire de votre projet.
Commande | Description |
---|---|
firebase target
|
Répertorie les cibles de déploiement pour le répertoire de votre projet actuel |
firebase target:remove \
|
Supprime une ressource de la cible à laquelle elle a été attribuée. |
firebase target:clear \
|
Supprime toutes les ressources ou le site Hosting du cible |
Les commandes target:remove
et target:clear
mettent automatiquement à jour le déploiement
paramètres cibles dans le fichier .firebaserc
du répertoire de votre projet.
Tester localement avant de déployer
Exécutez l'une des commandes suivantes à partir de la racine du répertoire de votre projet.
Commande | Description |
---|---|
firebase emulators:start
|
Émule toutes les ressources configurées dans le répertoire de votre projet. |
firebase emulators:start \ |
Émule uniquement le contenu et la configuration Hosting du site Hosting spécifié |
firebase emulators:start \
|
N'émule que le fichier de règles pour la cible Cloud Storage spécifiée |
firebase emulators:start \
|
Émule uniquement le fichier de règles pour la cible Realtime Database spécifiée |
En savoir plus sur la configuration et l'utilisation du Firebase Local Emulator Suite
Déployer des ressources Firebase spécifiques
Exécutez l'une des commandes suivantes à partir de la racine du répertoire de votre projet.
Commande | Description |
---|---|
firebase deploy
|
Crée une version de toutes les ressources déployables dans le répertoire de votre projet. |
firebase deploy \
|
Déploie uniquement le contenu et la configuration Hosting du a spécifié Hosting pour le canal en direct du site. |
firebase hosting:channel:deploy CHANNEL_ID \ |
Déploie uniquement le contenu et la configuration Hosting du site Hosting spécifié sur un canal d'aperçu pour le site. |
firebase deploy \
|
Ne déploie que le fichier de règles pour la cible Cloud Storage spécifiée. |
firebase deploy \
|
Ne déploie que le fichier de règles pour la cible Realtime Database spécifiée. |