Documentation de référence de la CLI Firebase

La CLI Firebase (GitHub) fournit divers outils pour gérer, afficher et déployer des projets Firebase.

Avant d'utiliser la CLI Firebase, configurez un projet Firebase.

Configurer ou mettre à jour la CLI

Installer la CLI Firebase

Vous pouvez installer la CLI Firebase à l'aide d'une méthode qui correspond à votre système d'exploitation, à votre niveau d'expérience et/ou à votre cas d'utilisation. Quelle que soit la méthode d'installation de l'interface de ligne de commande, vous avez accès aux mêmes fonctionnalités et à la commande firebase.

Windows macOS Linux

Windows

Vous pouvez installer la CLI Firebase pour Windows à l'aide de l'une des options suivantes :

Option Description Recommandé pour…
binaire autonome Téléchargez le binaire autonome pour la CLI. Vous pouvez ensuite accéder à l'exécutable pour ouvrir un shell dans lequel vous pouvez exécuter la commande firebase. Nouveaux développeurs

Développeurs qui n'utilisent pas ou ne connaissent pas Node.js
npm Utilisez npm (Node Package Manager) pour installer la CLI et activer la commande firebase disponible à l'échelle mondiale. Développeurs utilisant Node.js

binaire autonome

Pour télécharger et exécuter le binaire pour la CLI Firebase, procédez comme suit :

  1. Téléchargez le fichier binaire de la CLI Firebase pour Windows.

  2. Accédez au fichier binaire pour ouvrir un shell dans lequel vous pouvez exécuter la commande firebase.

  3. Poursuivez la procédure pour vous connecter et tester la CLI.

npm

Pour utiliser npm (Node Package Manager) afin d'installer la CLI Firebase, procédez comme suit :

  1. Installez Node.js à l'aide de nvm-windows (Node Version Manager). L'installation de Node.js installe automatiquement les outils de commande npm.

  2. Installez la CLI Firebase via npm en exécutant la commande suivante :

    npm install -g firebase-tools

    Cette commande active la commande firebase disponible dans le monde entier.

  3. Poursuivez la procédure pour vous connecter et tester la CLI.

macOS ou Linux

Vous pouvez installer la CLI Firebase pour macOS ou Linux à l'aide de l'une des options suivantes :

Option Description Recommandé pour…
Script d'installation automatique Exécutez une seule commande qui détecte automatiquement votre système d'exploitation, télécharge la dernière version de la CLI, puis active la commande firebase disponible globalement. Nouveaux développeurs

Développeurs qui n'utilisent pas ou ne connaissent pas Node.js

Déploiements automatisés dans un environnement CI/CD
binaire autonome Téléchargez le binaire autonome pour la CLI. Vous pouvez ensuite configurer et exécuter le binaire en fonction de votre workflow. Workflows entièrement personnalisables à l'aide de la CLI
npm Utilisez npm (Node Package Manager) pour installer la CLI et activer la commande firebase disponible à l'échelle mondiale. Développeurs utilisant Node.js

script d'installation automatique

Pour installer la CLI Firebase à l'aide du script d'installation automatique, procédez comme suit :

  1. Exécutez la commande cURL suivante :

    curl -sL https://firebase.tools | bash

    Ce script détecte automatiquement votre système d'exploitation, télécharge la dernière version de la Firebase CLI, puis active la commande firebase disponible dans le monde entier.

  2. Poursuivez la procédure pour vous connecter et tester la CLI.

Pour obtenir d'autres exemples et en savoir plus sur le script d'installation automatique, consultez le code source du script sur firebase.tools.

binaire autonome

Pour télécharger et exécuter le fichier binaire de la CLI Firebase spécifique à votre OS, procédez comme suit :

  1. Téléchargez le binaire de la CLI Firebase pour votre OS : macOS | Linux

  2. (Facultatif) Configurez la commande firebase disponible dans le monde entier.

    1. Rendez le binaire exécutable en exécutant chmod +x ./firebase_tools.
    2. Ajoutez le chemin d'accès au binaire à votre PATH.
  3. Poursuivez la procédure pour vous connecter et tester la CLI.

npm

Pour utiliser npm (Node Package Manager) afin d'installer la CLI Firebase, procédez comme suit :

  1. Installez Node.js à l'aide de nvm (Node Version Manager).
    L'installation de Node.js installe automatiquement les outils de commande npm.

  2. Installez la CLI Firebase via npm en exécutant la commande suivante :

    npm install -g firebase-tools

    Cette commande active la commande firebase disponible dans le monde entier.

  3. Poursuivez la procédure pour vous connecter et tester la CLI.

Se connecter et tester la CLI Firebase

Après avoir installé la CLI, vous devez vous authentifier. Vous pouvez ensuite confirmer l'authentification en listant vos projets Firebase.

  1. Exécutez la commande suivante pour vous connecter à Firebase avec votre compte Google :

    firebase login

    Cette commande connecte votre ordinateur local à Firebase et vous donne accès à vos projets Firebase.

  2. Testez si la CLI est correctement installée et si elle accède à votre compte en listant vos projets Firebase. Exécutez la commande suivante :

    firebase projects:list

    La liste affichée doit être identique à celle des projets Firebase listés dans la console Firebase.

Mettre à jour vers la dernière version de la CLI

En général, vous devez utiliser la version la plus récente de la CLI Firebase.

La façon dont vous mettez à jour la version de la CLI dépend de votre système d'exploitation et de la façon dont vous avez installé la CLI.

Windows

macOS

  • Script d'installation automatique : exécutez curl -sL https://firebase.tools | upgrade=true bash.

  • Fichier binaire autonome : téléchargez la nouvelle version, puis remplacez-la sur votre système.

  • npm : exécutez npm install -g firebase-tools

Linux

  • Script d'installation automatique : exécutez curl -sL https://firebase.tools | upgrade=true bash.

  • Fichier binaire autonome : téléchargez la nouvelle version, puis remplacez-la sur votre système.

  • npm : exécutez npm install -g firebase-tools

Utiliser la CLI avec les systèmes d'intégration continue

Nous vous recommandons de vous authentifier à l'aide des identifiants par défaut de l'application lorsque vous utilisez la CLI avec des systèmes d'intégration continue.

(Recommandé) Utiliser les identifiants par défaut de l'application

L'interface de ligne de commande Firebase détecte et utilise les identifiants par défaut de l'application s'ils sont définis. Le moyen le plus simple d'authentifier la CLI dans l'intégration continue et d'autres environnements sans interface utilisateur consiste à configurer les identifiants par défaut de l'application.

(Ancien) : utilisez FIREBASE_TOKEN

Vous pouvez également vous authentifier à l'aide de FIREBASE_TOKEN. Cette méthode est moins sécurisée que les identifiants par défaut de l'application et n'est plus recommandée.

  1. Sur une machine avec un navigateur, installez la CLI Firebase.

  2. Démarrez le processus de connexion en exécutant la commande suivante :

    firebase login:ci
  3. Accédez à l'URL fournie, puis connectez-vous à l'aide d'un compte Google.

  4. Imprimez un nouveau jeton d'actualisation. La session CLI actuelle ne sera pas affectée.

  5. Stockez le jeton de sortie de manière sécurisée, mais accessible dans votre système CI.

  6. Utilisez ce jeton lorsque vous exécutez des commandes firebase. Vous pouvez utiliser l'une des deux options suivantes :

    • Option 1 : Stockez le jeton en tant que variable d'environnement FIREBASE_TOKEN. Votre système utilisera automatiquement le jeton.

    • Option 2 : Exécutez toutes les commandes firebase avec l'option --token TOKEN dans votre système d'intégration continue.
      Voici l'ordre de priorité pour le chargement des jetons : indicateur, variable d'environnement, projet Firebase souhaité.

Initialiser un projet Firebase

De nombreuses tâches courantes effectuées à l'aide de la CLI, comme le déploiement dans un projet Firebase, nécessitent un répertoire de projet. Vous établissez un répertoire de projet à l'aide de la commande firebase init. Un répertoire de projet est généralement le même que la racine de votre contrôle de code source. Après l'exécution de firebase init, le répertoire contient un fichier de configuration firebase.json.

Pour initialiser un nouveau projet Firebase, exécutez la commande suivante à partir du répertoire de votre application :

firebase init

La commande firebase init vous guide dans la configuration de votre répertoire de projet et de certains produits Firebase. Lors de l'initialisation du projet, l'interface de ligne de commande Firebase vous demande d'effectuer les tâches suivantes :

  • Sélectionnez un projet Firebase par défaut.

    Cette étape associe le répertoire de projet actuel à un projet Firebase afin que les commandes spécifiques au projet (comme firebase deploy) s'exécutent sur le projet Firebase approprié.

    Il est également possible d'associer plusieurs projets Firebase (comme un projet de préproduction et un projet de production) au même répertoire de projet.

  • Sélectionnez les produits Firebase que vous souhaitez configurer dans votre projet Firebase.

    Cette étape vous invite à définir des configurations pour des fichiers spécifiques pour les produits sélectionnés. Pour en savoir plus sur ces configurations, consultez la documentation du produit concerné (par exemple, Hosting). Notez que vous pouvez toujours exécuter firebase init ultérieurement pour configurer d'autres produits Firebase.

À la fin de l'initialisation, Firebase crée automatiquement les deux fichiers suivants à la racine du répertoire de votre application locale :

  • Un fichier de configuration firebase.json qui liste la configuration de votre projet.

  • Un fichier .firebaserc qui stocke les alias de votre projet.

Le fichier firebase.json

La commande firebase init crée un fichier de configuration firebase.json à la racine du répertoire de votre projet.

Le fichier firebase.json est nécessaire pour déployer des éléments avec la CLI Firebase, car il spécifie les fichiers et les paramètres de votre répertoire de projet qui sont déployés dans votre projet Firebase. Étant donné que certains paramètres peuvent être définis dans le répertoire de votre projet ou dans la console Firebase, assurez-vous de résoudre tout conflit de déploiement potentiel.

Vous pouvez configurer la plupart des options Firebase Hosting directement dans le fichier firebase.json. Toutefois, pour les autres services Firebase pouvant être déployés avec la CLI Firebase, la commande firebase init crée des fichiers spécifiques dans lesquels vous pouvez définir les paramètres de ces services, comme un fichier index.js pour Cloud Functions. Vous pouvez également configurer des crochets de pré-déploiement ou de post-déploiement dans le fichier firebase.json.

Voici un exemple de fichier firebase.json avec les paramètres par défaut si vous sélectionnez Firebase Hosting, Cloud Firestore et Cloud Functions for Firebase (avec les options de source et de lint TypeScript sélectionnées) lors de l'initialisation.

{
  "hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ]
  },
  "firestore": {
      "rules": "firestore.rules",
      "indexes": "firestore.indexes.json"
  },
  "functions": {
    "predeploy": [
      "npm --prefix \"$RESOURCE_DIR\" run lint",
      "npm --prefix \"$RESOURCE_DIR\" run build"
    ]
  }
}

Bien que firebase.json soit utilisé par défaut, vous pouvez transmettre l'indicateur --config PATH pour spécifier un autre fichier de configuration.

Configuration pour plusieurs bases de données Cloud Firestore

Lorsque vous exécutez firebase init, votre fichier firebase.json contient une seule clé firestore correspondant à la base de données par défaut de votre projet, comme indiqué ci-dessus.

Si votre projet contient plusieurs bases de données Cloud Firestore, modifiez votre fichier firebase.json pour associer différents fichiers sources d'index de base de données et Cloud Firestore Security Rules à chaque base de données. Modifiez le fichier avec un tableau JSON, avec une entrée pour chaque base de données.

      "firestore": [
        {
          "database": "(default)",
          "rules": "firestore.default.rules",
          "indexes": "firestore.default.indexes.json"
        },
        {
          "database": "ecommerce",
          "rules": "firestore.ecommerce.rules",
          "indexes": "firestore.ecommerce.indexes.json"
        }
      ],

Fichiers Cloud Functions à ignorer lors du déploiement

Lors du déploiement de la fonction, la CLI spécifie automatiquement une liste de fichiers à ignorer dans le répertoire functions. Cela empêche le déploiement sur le backend de fichiers superflus qui pourraient augmenter la taille des données de votre déploiement.

Voici la liste des fichiers ignorés par défaut, au format JSON :

"ignore": [
  ".git",
  ".runtimeconfig.json",
  "firebase-debug.log",
  "firebase-debug.*.log",
  "node_modules"
]

Si vous ajoutez vos propres valeurs personnalisées pour ignore dans firebase.json, assurez-vous de conserver (ou d'ajouter, si elle est manquante) la liste des fichiers affichée ci-dessus.

Gérer les alias de projet

Vous pouvez associer plusieurs projets Firebase au même répertoire de projet. Par exemple, vous pouvez utiliser un projet Firebase pour la préproduction et un autre pour la production. En utilisant différents environnements de projet, vous pouvez vérifier les modifications avant de les déployer en production. La commande firebase use vous permet de passer d'un alias à un autre et d'en créer de nouveaux.

Ajouter un alias de projet

Lorsque vous sélectionnez un projet Firebase lors de l'initialisation du projet, l'alias default est automatiquement attribué au projet. Toutefois, pour autoriser l'exécution de commandes spécifiques à un projet sur un autre projet Firebase tout en utilisant le même répertoire de projet, exécutez la commande suivante à partir de votre répertoire de projet :

firebase use --add

Cette commande vous invite à sélectionner un autre projet Firebase et à lui attribuer un alias. Les attributions d'alias sont écrites dans un fichier .firebaserc à l'intérieur du répertoire de votre projet.

Utiliser des alias de projet

Pour utiliser les alias de projet Firebase attribués, exécutez l'une des commandes suivantes depuis le répertoire de votre projet.

Commande Description
firebase use Afficher la liste des alias actuellement définis pour le répertoire de votre projet
firebase use \
PROJECT_ID|ALIAS
Dirige toutes les commandes pour qu'elles s'exécutent sur le projet Firebase spécifié.
 CLI utilise ce projet comme "projet actif".
firebase use --clear Efface le projet actif.

Exécutez firebase use PROJECT_ID|ALIAS pour définir un nouveau projet actif avant d'exécuter d'autres commandes CLI.

firebase use \
--unalias PROJECT_ALIAS
Supprime un alias du répertoire de votre projet.

Vous pouvez remplacer le projet actuellement actif en transmettant l'indicateur --project avec n'importe quelle commande CLI. Par exemple, vous pouvez configurer votre CLI pour qu'elle s'exécute sur un projet Firebase auquel vous avez attribué l'alias staging. Si vous souhaitez exécuter une seule commande sur le projet Firebase auquel vous avez attribué l'alias prod, vous pouvez, par exemple, exécuter firebase deploy --project=prod.

Contrôle des sources et alias de projet

En règle générale, vous devez enregistrer votre fichier .firebaserc dans le contrôle du code source pour permettre à votre équipe de partager des alias de projet. Toutefois, pour les projets Open Source ou les modèles de démarrage, vous ne devez généralement pas archiver votre fichier .firebaserc.

Si vous disposez d'un projet de développement qui est réservé à votre usage, vous pouvez transmettre l'indicateur --project avec chaque commande ou exécuter firebase use PROJECT_ID sans attribuer d'alias au projet Firebase.

Diffuser et tester votre projet Firebase en local

Vous pouvez afficher et tester votre projet Firebase sur des URL hébergées localement avant de le déployer en production. Si vous ne souhaitez tester que certaines fonctionnalités, vous pouvez utiliser une liste d'éléments séparés par une virgule dans un indicateur de la commande firebase serve.

Exécutez la commande suivante à partir de la racine du répertoire de votre projet local si vous souhaitez effectuer l'une des tâches suivantes :

  • Affichez le contenu statique de votre application hébergée sur Firebase.
  • Vous utilisez Cloud Functions pour générer du contenu dynamique pour Firebase Hosting et vous souhaitez utiliser vos fonctions HTTP de production (déployées) pour émuler Hosting sur une URL locale.
firebase serve --only hosting

Émuler votre projet à l'aide de fonctions HTTP locales

Exécutez l'une des commandes suivantes à partir du répertoire de votre projet pour l'émuler à l'aide de fonctions HTTP locales.

  • Pour émuler des fonctions HTTP et l'hébergement afin de tester des URL locales, utilisez l'une des commandes suivantes :

    firebase serve
    firebase serve --only functions,hosting // uses a flag
  • Pour n'émuler que les fonctions HTTP, utilisez la commande suivante :

    firebase serve --only functions

Tester depuis d'autres appareils locaux

Par défaut, firebase serve ne répond qu'aux requêtes de localhost. Cela signifie que vous pourrez accéder à votre contenu hébergé depuis le navigateur Web de votre ordinateur, mais pas depuis d'autres appareils de votre réseau. Si vous souhaitez effectuer des tests à partir d'autres appareils locaux, utilisez l'indicateur --host, comme suit :

firebase serve --host 0.0.0.0  // accepts requests to any host

Déployer sur un projet Firebase

La CLI Firebase gère le déploiement du code et des éléments dans votre projet Firebase, y compris :

  • Nouveautés pour vos sites Firebase Hosting
  • Cloud Functions for Firebase nouveau, modifié ou existant
  • Nouveaux schémas et connecteurs ou schémas et connecteurs mis à jour pour Firebase Data Connect
  • Règles pour Firebase Realtime Database
  • Règles pour Cloud Storage for Firebase
  • Règles pour Cloud Firestore
  • Index pour Cloud Firestore

Pour déployer votre projet Firebase, exécutez la commande suivante à partir du répertoire de votre projet :

firebase deploy

Vous pouvez ajouter un commentaire à chacun de vos déploiements. Ce commentaire s'affichera avec les autres informations de déploiement sur la page Firebase Hosting de votre projet. Exemple :

firebase deploy -m "Deploying the best new feature ever."

Lorsque vous utilisez la commande firebase deploy, gardez à l'esprit ce qui suit :

  • Pour déployer des ressources à partir d'un répertoire de projet, ce répertoire doit contenir un fichier firebase.json. Ce fichier est créé automatiquement pour vous par la commande firebase init.

  • Par défaut, firebase deploy crée une version pour toutes les ressources déployables dans le répertoire de votre projet. Pour déployer des services ou des fonctionnalités Firebase spécifiques, utilisez le déploiement partiel.

Conflits de déploiement pour les règles de sécurité

Pour Firebase Realtime Database, Cloud Storage for Firebase et Cloud Firestore, vous pouvez définir des règles de sécurité dans le répertoire de votre projet local ou dans la console Firebase.

Pour éviter les conflits de déploiement, vous pouvez également utiliser le déploiement partiel et ne définir des règles que dans la console Firebase.

Quotas de déploiement

Il est possible (bien que peu probable) que vous dépassiez un quota qui limite le taux ou le volume de vos opérations de déploiement Firebase. Par exemple, lorsque vous déployez un très grand nombre de fonctions, vous pouvez recevoir un message d'erreur HTTP 429 Quota. Pour résoudre ces problèmes, essayez d'utiliser le déploiement partiel.

Effectuer le rollback d'un déploiement

Vous pouvez rétablir un déploiement Firebase Hosting à partir de la page Firebase Hosting de votre projet en sélectionnant l'action Rétablir pour la version souhaitée.

Il n'est actuellement pas possible de revenir à une version antérieure des règles de sécurité pour Firebase Realtime Database, Cloud Storage for Firebase ou Cloud Firestore.

Déployer des services Firebase spécifiques

Si vous ne souhaitez déployer que des services ou des fonctionnalités Firebase spécifiques, vous pouvez utiliser une liste séparée par des virgules dans un indicateur de la commande firebase deploy. Par exemple, la commande suivante déploie le contenu Firebase Hosting et les règles de sécurité Cloud Storage.

firebase deploy --only hosting,storage

Le tableau suivant liste les services et fonctionnalités disponibles pour le déploiement partiel. Les noms des indicateurs correspondent aux clés de votre fichier de configuration firebase.json.

Syntaxe des indicateurs Service ou fonctionnalité déployés
--only hosting Contenu Firebase Hosting
--only database Firebase Realtime Database règles
--only dataconnect Schémas et connecteurs Firebase Data Connect
--only storage Cloud Storage for Firebase règles
--only firestore Règles Cloud Firestoreet index pour toutes les bases de données configurées
--only functions Cloud Functions for Firebase (des versions plus spécifiques de cet indicateur sont possibles)

Déployer des fonctions spécifiques

Lorsque vous déployez des fonctions, vous pouvez cibler des fonctions spécifiques. Exemple :

firebase deploy --only functions:function1
firebase deploy --only functions:function1,functions:function2

Une autre option consiste à regrouper les fonctions dans des groupes d'exportation dans votre fichier /functions/index.js. Le regroupement de fonctions vous permet de déployer plusieurs fonctions à l'aide d'une seule commande.

Par exemple, vous pouvez écrire les fonctions suivantes pour définir un groupA et un groupB :

var functions = require('firebase-functions/v1');

exports.groupA = {
  function1: functions.https.onRequest(...),
  function2: functions.database.ref('\path').onWrite(...)
}
exports.groupB = require('./groupB');

Dans cet exemple, un fichier functions/groupB.js distinct contient des fonctions supplémentaires qui définissent spécifiquement les fonctions dans groupB. Exemple :

var functions = require('firebase-functions/v1');

exports.function3 = functions.storage.object().onChange(...);
exports.function4 = functions.analytics.event('in_app_purchase').onLog(...);

Dans cet exemple, vous pouvez déployer toutes les fonctions groupA en exécutant la commande suivante à partir du répertoire de votre projet :

firebase deploy --only functions:groupA

Vous pouvez également cibler une fonction spécifique au sein d'un groupe en exécutant la commande suivante :

firebase deploy --only functions:groupA.function1,groupB.function4

Supprimer des fonctions

La CLI Firebase accepte les commandes et options suivantes pour supprimer les fonctions déployées précédemment :

  • Supprime toutes les fonctions portant le nom spécifié dans toutes les régions :

    firebase functions:delete FUNCTION-1_NAME

  • Supprime une fonction spécifiée s'exécutant dans une région autre que celle par défaut :

    firebase functions:delete FUNCTION-1_NAME --region REGION_NAME

  • Supprimer plusieurs fonctions :

    firebase functions:delete FUNCTION-1_NAME FUNCTION-2_NAME

  • Supprime un groupe de fonctions spécifié :

    firebase functions:delete GROUP_NAME

  • Contourne l'invite de confirmation :

    firebase functions:delete FUNCTION-1_NAME --force

Configurer des tâches scriptées avant et après le déploiement

Vous pouvez connecter des scripts shell à la commande firebase deploy pour effectuer des tâches de pré-déploiement ou de post-déploiement. Par exemple, un script de pré-déploiement peut transcompiler du code TypeScript en JavaScript, et un crochet de post-déploiement peut informer les administrateurs des nouveaux déploiements de contenu de site sur Firebase Hosting.

Pour configurer des hooks de pré-déploiement ou de post-déploiement, ajoutez des scripts Bash à votre fichier de configuration firebase.json. Vous pouvez définir de brefs scripts directement dans le fichier firebase.json ou faire référence à d'autres fichiers de votre répertoire de projet.

Par exemple, le script suivant est l'expression firebase.json pour une tâche post-déploiement qui envoie un message Slack en cas de déploiement réussi à Firebase Hosting.

"hosting": {
  // ...

  "postdeploy": "./messageSlack.sh 'Just deployed to Firebase Hosting'",
  "public": "public"
}

Le fichier de script messageSlack.sh se trouve dans le répertoire du projet et ressemble à ceci :

curl -X POST -H 'Content-type: application/json' --data '{"text":"$1"}'
     \https://SLACK_WEBHOOK_URL

Vous pouvez configurer des hooks predeploy et postdeploy pour n'importe quel composant que vous pouvez déployer. Notez que l'exécution de firebase deploy déclenche toutes les tâches de prédéploiement et de post-déploiement définies dans votre fichier firebase.json. Pour n'exécuter que les tâches associées à un service Firebase spécifique, utilisez des commandes de déploiement partiel.

Les hooks predeploy et postdeploy impriment les flux de sortie et d'erreur standards des scripts dans le terminal. Pour les cas d'échec, notez les points suivants :

  • Si un hook de pré-déploiement ne se termine pas comme prévu, le déploiement est annulé.
  • Si le déploiement échoue pour une raison quelconque, les hooks post-déploiement ne sont pas déclenchés.

Variables d'environnement

Les variables d'environnement suivantes sont disponibles dans les scripts exécutés dans les hooks de prédéploiement et de post-déploiement :

  • $GCLOUD_PROJECT : ID du projet actif.
  • $PROJECT_DIR : répertoire racine contenant le fichier firebase.json
  • $RESOURCE_DIR : (pour les scripts hosting et functions uniquement) emplacement du répertoire contenant les ressources Hosting ou Cloud Functions à déployer

Gérer plusieurs instances Realtime Database

Un projet Firebase peut contenir plusieurs instances Firebase Realtime Database. Par défaut, les commandes CLI interagissent avec votre instance de base de données par défaut.

Toutefois, vous pouvez interagir avec une instance de base de données non définie par défaut à l'aide de l'option --instance DATABASE_NAME. Les commandes suivantes sont compatibles avec l'option --instance :

  • firebase database:get
  • firebase database:profile
  • firebase database:push
  • firebase database:remove
  • firebase database:set
  • firebase database:update

Documentation de référence sur les commandes

Commandes d'administration de la CLI

Commande Description
help Affiche des informations d'aide sur la CLI ou sur des commandes spécifiques.
init Associe et configure un nouveau projet Firebase dans le répertoire actuel. Cette commande crée un fichier de configuration firebase.json dans le répertoire actuel.
login Authentifie la CLI avec votre compte Google. Nécessite l'accès à un navigateur Web.
Pour vous connecter à la CLI dans des environnements à distance qui n'autorisent pas l'accès à localhost, utilisez l'option --no-localhost.
login:ci Génère un jeton d'authentification à utiliser dans des environnements non interactifs.
logout Déconnecte votre compte Google de l'interface de ligne de commande.
open Ouvre un navigateur sur les ressources de projet pertinentes.
projects:list Liste tous les projets Firebase auxquels vous avez accès.
use Définit le projet Firebase actif pour la CLI.
Gère les alias de projet.

Commandes de gestion de projet

Commande Description
Gérer les projets Firebase
projects:addfirebase Ajoute des ressources Firebase à un projet Google Cloud existant.
projects:create Crée un projet Google Cloud, puis ajoute des ressources Firebase au nouveau projet.
projects:list Liste tous les projets Firebase auxquels vous avez accès.
Gestion des applications Firebase (iOS, Android, Web)
apps:create Crée une application Firebase dans le projet actif.
apps:list Liste les applications Firebase enregistrées dans le projet actif.
apps:sdkconfig Affiche la configuration des services Google d'une application Firebase.
setup:web Obsolète. Utilisez plutôt apps:sdkconfig et spécifiez web comme argument de plate-forme.
Affiche la configuration des services Google d'une application Web Firebase.
Gestion des hachages de certificats SHA (Android uniquement)
apps:android:sha:create \
FIREBASE_APP_ID SHA_HASH
Ajoute le hachage du certificat SHA spécifié à l'application Android Firebase spécifiée.
apps:android:sha:delete \
FIREBASE_APP_ID SHA_HASH
Supprime le hachage de certificat SHA spécifié de l'application Android Firebase spécifiée.
apps:android:sha:list \
FIREBASE_APP_ID
Liste les hachages de certificat SHA pour l'application Android Firebase spécifiée.

Déploiement et développement local

Ces commandes vous permettent de déployer votre site Firebase Hosting et d'interagir avec lui.

Commande Description
deploy Déploie le code et les composants du répertoire de votre projet vers le projet actif. Pour Firebase Hosting, un fichier de configuration firebase.json est requis.
serve Démarre un serveur Web local avec votre configuration Firebase Hosting. Pour Firebase Hosting, un fichier de configuration firebase.json est requis.

Commandes App Distribution

Commande Description
appdistribution:distribute \
--app FIREBASE_APP_ID
Rend le build disponible pour les testeurs.
appdistribution:testers:add Ajoute des testeurs au projet.
appdistribution:testers:remove Supprime les testeurs du projet.

Commandes App Hosting

Commande Description
apphosting:backends:create \
--project PROJECT_ID \
--location REGION --app APP_ID
Crée la collection de ressources gérées associées à une base de code unique qui constitue un backend App Hosting. Vous pouvez éventuellement spécifier une application Web Firebase existante à l'aide de son ID d'application Firebase.
apphosting:backends:get \
BACKEND_ID \
--project PROJECT_ID \
--location REGION
Récupère des informations spécifiques, y compris l'URL publique, d'un backend.
apphosting:backends:list \
--project PROJECT_ID
Récupère la liste de tous les backends actifs associés à un projet.
firebase apphosting:backends:delete \
BACKEND_ID \
--project PROJECT_ID \
--location REGION
Supprime un backend du projet.
firebase apphosting:config:export \
--project PROJECT_ID \
--secrets ENVIRONMENT_NAME
Exporte les secrets à utiliser dans l'émulation d'application.
La valeur par défaut correspond aux secrets stockés dans apphosting.yaml, ou prend --secrets pour spécifier tout environnement disposant d'un fichier apphosting.ENVIRONMENT_NAME.yaml correspondant.
firebase apphosting:rollouts:create \
BACKEND_ID \
--git_branch BRANCH_NAME \
--git_commit COMMIT_ID
Crée un déploiement déclenché manuellement.
Vous pouvez éventuellement spécifier le dernier commit d'une branche ou un commit spécifique. Si aucune option n'est fournie, l'utilisateur est invité à sélectionner une branche dans une liste.
apphosting:secrets:set KEY --project PROJECT_ID \
--location REGION \
--data-file DATA_FILE_PATH
Stocke les éléments secrets dans Secret Manager.
Vous pouvez éventuellement fournir un chemin d'accès à un fichier à partir duquel lire les données secrètes. Définissez la valeur sur _ pour lire les données secrètes à partir de l'entrée standard.
apphosting:secrets:grantaccess KEY BACKEND_ID \
--project PROJECT_ID \
--location REGION
Accorde au compte de service backend l'accès au secret fourni afin qu'il puisse être consulté par App Hosting au moment de la compilation ou de l'exécution.
apphosting:secrets:describe KEY \
--project PROJECT_ID
Récupère les métadonnées d'un secret et de ses versions.
firebase apphosting:secrets:access \
KEY[@version] \
--project PROJECT_ID
Accède à la valeur d'un secret en fonction du secret et de sa version. Par défaut, la dernière version est utilisée.

Commandes Authentication (gestion des utilisateurs)

Commande Description
auth:export Exporte les comptes utilisateur du projet actif vers un fichier JSON ou CSV. Pour en savoir plus, consultez la page auth:import et auth:export.
auth:import Importe les comptes utilisateur à partir d'un fichier JSON ou CSV dans le projet actif. Pour en savoir plus, consultez la page auth:import et auth:export.

Commandes Cloud Firestore

Commande Description
firestore:locations

Liste les emplacements disponibles pour votre base de données Cloud Firestore.

firestore:databases:create DATABASE_ID

Créez une instance de base de données en mode natif dans votre projet Firebase.

La commande accepte les options suivantes :

  • --location <nom de la région> pour spécifier l'emplacement de déploiement de la base de données. Notez que vous pouvez exécuter firebase firestore:locations pour lister les emplacements disponibles. Obligatoire.
  • --delete-protection <deleteProtectionState> pour autoriser ou empêcher la suppression de la base de données spécifiée. Les valeurs valides sont ENABLED ou DISABLED. La valeur par défaut est DISABLED.
  • --point-in-time-recovery <PITRState> pour définir si la récupération à un moment précis est activée. Les valeurs valides sont ENABLED ou DISABLED. La valeur par défaut est DISABLED. Facultatif.
firestore:databases:list

Lister les bases de données de votre projet Firebase.

firestore:databases:get DATABASE_ID

Obtenez la configuration de la base de données pour une base de données spécifique dans votre projet Firebase.

firestore:databases:update DATABASE_ID

Mettez à jour la configuration de la base de données spécifiée dans votre projet Firebase.

Veuillez indiquer au moins un indicateur. La commande accepte les options suivantes :

  • --delete-protection <deleteProtectionState> pour autoriser ou empêcher la suppression de la base de données spécifiée. Les valeurs valides sont ENABLED ou DISABLED. La valeur par défaut est DISABLED.
  • --point-in-time-recovery <PITRState> pour définir si la récupération à un moment précis est activée. Les valeurs valides sont ENABLED ou DISABLED. La valeur par défaut est DISABLED. Facultatif.
firestore:databases:delete DATABASE_ID

Supprimez une base de données dans votre projet Firebase.

firestore:indexes

Répertorie les index d'une base de données dans votre projet Firebase.

La commande accepte l'option suivante :

  • --database DATABASE_ID pour spécifier le nom de la base de données pour laquelle lister les index. Si aucune base de données n'est spécifiée, les index sont listés pour la base de données par défaut.
firestore:delete

Supprime les documents de la base de données du projet actif. À l'aide de l'interface de ligne de commande, vous pouvez supprimer de manière récursive tous les documents d'une collection.

Notez que la suppression des données Cloud Firestore avec la CLI entraîne des coûts de lecture et de suppression. Pour en savoir plus, consultez Comprendre la facturation Cloud Firestore.

La commande accepte l'option suivante :

  • --database DATABASE_ID pour spécifier le nom de la base de données à partir de laquelle les documents sont supprimés. Si aucune base de données n'est spécifiée, les documents sont supprimés de la base de données par défaut. Facultatif.

Commandes Cloud Functions for Firebase

Commande Description
functions:config:clone Clone l'environnement d'un autre projet dans le projet Firebase actif.
functions:config:get Récupère les valeurs de configuration existantes du Cloud Functions du projet actif.
functions:config:set Stocke les valeurs de configuration d'exécution du Cloud Functions du projet actif.
functions:config:unset Supprime les valeurs de la configuration de l'environnement d'exécution du projet actif.
functions:log Lit les journaux des Cloud Functions déployés.

Pour en savoir plus, consultez la documentation sur la configuration de l'environnement.

Commandes Crashlytics

Commande Description
crashlytics:mappingfile:generateid \
--resource-file=PATH/TO/ANDROID_RESOURCE.XML
Génère un ID de fichier de mappage unique dans le fichier de ressources Android (XML) spécifié.
crashlytics:mappingfile:upload \
--app=FIREBASE_APP_ID \
--resource-file=PATH/TO/ANDROID_RESOURCE.XML \
PATH/TO/MAPPING_FILE.TXT
Importe un fichier de mappage (TXT) compatible avec Proguard pour cette application et l'associe à l'ID de fichier de mappage déclaré dans le fichier de ressources Android (XML) spécifié.
crashlytics:symbols:upload \
--app=FIREBASE_APP_ID \
PATH/TO/SYMBOLS
Génère un fichier de symboles compatible avec Crashlytics pour les plantages de bibliothèques natives sur Android et l'importe sur les serveurs Firebase.

Commandes Data Connect

Ces commandes et leurs cas d'utilisation sont traités plus en détail dans le guide de référence de la CLI Data Connect.

Commande Description
dataconnect:services:list Liste tous les services Data Connect déployés dans votre projet Firebase.
dataconnect:sql:diff \
SERVICE_ID
Pour le service spécifié, affiche les différences entre un schéma Data Connect local et le schéma de votre base de données Cloud SQL.
dataconnect:sql:migrate \
--force \
SERVICE_ID
Migre le schéma de votre base de données Cloud SQL pour qu'il corresponde à votre schéma Data Connect local.
dataconnect:sql:grant\
--role=ROLE \
--email=EMAIL \
SERVICE_ID
Attribue le rôle SQL à l'adresse e-mail de l'utilisateur ou du compte de service spécifié.
Pour l'option --role, le rôle SQL à accorder doit être l'un des suivants : owner, writer ou reader.
 Pour l'indicateur --email, indiquez l'adresse e-mail de l'utilisateur ou du compte de service auquel attribuer le rôle.
dataconnect:sdk:generate Génère des SDK typés pour vos connecteurs Data Connect.

Commandes Extensions

Commande Description
ext Affiche des informations sur l'utilisation des commandes Firebase Extensions.
Liste les instances d'extension installées dans le projet actif.
ext:configure \
EXTENSION_INSTANCE_ID
Reconfigure les valeurs de paramètre d'une instance d'extension dans votre fichier manifeste d'extension.
ext:info \
PUBLISHER_ID/EXTENSION_ID
Affiche des informations détaillées sur une extension.
ext:install \
PUBLISHER_ID/EXTENSION_ID
Ajoute une nouvelle instance d'une extension à votre fichier manifeste d'extension.
ext:list Liste toutes les instances d'extension installées dans un projet Firebase.
Affiche l'ID d'instance pour chaque extension.
ext:uninstall \
EXTENSION_INSTANCE_ID
Supprime une instance d'extension de votre fichier manifeste d'extension.
ext:update \
EXTENSION_INSTANCE_ID
Met à jour une instance d'extension vers la dernière version dans votre fichier manifeste de l'extension.
ext:export Exporte toutes les instances d'extension installées de votre projet vers votre fichier manifeste d'extension.

Commandes pour les éditeurs Extensions

Commande Description
ext:dev:init Initialise un squelette de code pour une nouvelle extension dans le répertoire actuel.
ext:dev:list \
PUBLISHER_ID
Affiche la liste de toutes les extensions importées par un éditeur.
ext:dev:register Enregistre un projet Firebase en tant que projet d'éditeur d'extensions.
ext:dev:deprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Abandonne les versions d'extension qui correspondent au prédicat de version.
Un prédicat de version peut être une version unique (telle que 1.0.0) ou une plage de versions (telle que >1.0.0).
Si aucun prédicat de version n'est fourni, toutes les versions de cette extension sont obsolètes.
ext:dev:undeprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Annule la désapprobation des versions d'extension qui correspondent au prédicat de version.
Un prédicat de version peut être une version unique (telle que 1.0.0) ou une plage de versions (telle que >1.0.0).
Si aucun prédicat de version n'est fourni, toutes les versions de cette extension sont rétablies.
ext:dev:upload \
PUBLISHER_ID/EXTENSION_ID
Importe une nouvelle version d'une extension.
ext:dev:usage \
PUBLISHER_ID
Affiche le nombre d'installations et les métriques d'utilisation des extensions importées par un éditeur.

Commandes Hosting

Commande Description
hosting:disable

Arrête la diffusion du trafic Firebase Hosting pour le projet Firebase actif.

L'URL Hosting de votre projet affichera le message "Site introuvable" après l'exécution de cette commande.

Gestion des Hosting sites
firebase hosting:sites:create \
SITE_ID

Crée un site Hosting dans le projet Firebase actif à l'aide du SITE_ID spécifié.

(Facultatif) Spécifiez une application Web Firebase existante à associer au nouveau site en transmettant le flag suivant : --app FIREBASE_APP_ID.

firebase hosting:sites:delete \
SITE_ID

Supprime le site Hosting spécifié.

La CLI affiche une invite de confirmation avant de supprimer le site.

(Facultatif) Ignorez l'invite de confirmation en transmettant les indicateurs suivants : -f ou --force.

firebase hosting:sites:get \
SITE_ID

Récupère des informations sur le site Hosting spécifié.

firebase hosting:sites:list

Liste tous les sites Hosting pour le projet Firebase actif

Gestion des canaux de prévisualisation
firebase hosting:channel:create \
CHANNEL_ID

Crée un canal d'aperçu dans le site default Hosting à l'aide du CHANNEL_ID spécifié.

Cette commande ne déploie pas le canal.

firebase hosting:channel:delete \
CHANNEL_ID

Supprime la chaîne d'aperçu spécifiée.

Vous ne pouvez pas supprimer la chaîne en direct d'un site.

firebase hosting:channel:deploy \
CHANNEL_ID

Déploie le contenu et la configuration de Hosting sur le canal de prévisualisation spécifié

Si le canal d'aperçu n'existe pas encore, cette commande le crée sur le site default Hosting avant de déployer le canal.

firebase hosting:channel:list Liste toutes les chaînes (y compris la chaîne "live") sur le site default Hosting
firebase hosting:channel:open \
CHANNEL_ID
Ouvre un navigateur sur l'URL de la chaîne spécifiée ou renvoie l'URL si l'ouverture dans un navigateur n'est pas possible.
Clonage de versions
firebase hosting:clone \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Clone la dernière version déployée sur le canal "source" spécifié vers le canal "cible" spécifié.

Cette commande déploie également l'application sur le canal "target" spécifié. Si le canal "target" n'existe pas encore, cette commande crée un canal d'aperçu dans le site Hosting "target" avant le déploiement sur le canal.

firebase hosting:clone \
SOURCE_SITE_ID:@VERSION_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Clone la version spécifiée sur le canal "cible" spécifié.

Cette commande déploie également l'application sur le canal "target" spécifié. Si le canal "target" n'existe pas encore, cette commande crée un canal d'aperçu dans le site Hosting "target" avant le déploiement sur le canal.

Vous trouverez VERSION_ID dans le tableau de bord Hosting de la console Firebase.

Commandes Realtime Database

Notez que vous pouvez créer votre instance Realtime Database initiale par défaut dans la console Firebase ou en utilisant le workflow firebase init général ou le workflow firebase init database spécifique.

Une fois les instances créées, vous pouvez les gérer comme indiqué dans Gérer plusieurs instances Realtime Database.

Commande Description
database:get Récupère les données de la base de données du projet actif et les affiche au format JSON. Permet d'interroger les données indexées.
database:instances:create Crée une instance de base de données avec un nom d'instance spécifié. Accepte l'option --location pour créer une base de données dans une région spécifiée. Pour connaître les noms de régions à utiliser avec cette option, consultez Sélectionner des emplacements pour votre projet. Si aucune instance de base de données n'existe pour le projet actuel, vous êtes invité à exécuter le flux firebase init pour en créer une.
database:instances:list Répertorie toutes les instances de base de données pour ce projet. Accepte l'option --location pour lister les bases de données dans une région spécifiée. Pour connaître les noms de régions à utiliser avec cette option, consultez Sélectionner des emplacements pour votre projet.
database:profile Crée un profil des opérations sur la base de données du projet actif. Pour en savoir plus, consultez la section Types d'opérations Realtime Database.
database:push Envoie de nouvelles données à une liste à un emplacement spécifié dans la base de données du projet actif. Accepte les entrées d'un fichier, de STDIN ou d'un argument de ligne de commande.
database:remove Supprime toutes les données à un emplacement spécifié dans la base de données du projet actif.
database:set Remplace toutes les données à un emplacement spécifié dans la base de données du projet actif. Accepte les entrées d'un fichier, de STDIN ou d'un argument de ligne de commande.
database:update Effectue une mise à jour partielle à un emplacement spécifié dans la base de données du projet actif. Accepte les entrées d'un fichier, de STDIN ou d'un argument de ligne de commande.

Commandes Remote Config

Commande Description
remoteconfig:versions:list \
--limit NUMBER_OF_VERSIONS
Liste les dix versions les plus récentes du modèle. Spécifiez 0 pour renvoyer toutes les versions existantes ou transmettez éventuellement l'option --limit pour limiter le nombre de versions renvoyées.
remoteconfig:get \
--v, version_number VERSION_NUMBER
--o, output FILENAME
Récupère le modèle par version (la dernière version par défaut) et affiche les groupes de paramètres, les paramètres, les noms de conditions et la version dans un tableau. Vous pouvez éventuellement écrire le résultat dans un fichier spécifié avec -o, FILENAME.
remoteconfig:rollback \
--v, version_number VERSION_NUMBER
--force
Rétablit le modèle Remote Config à un numéro de version précédent spécifié ou à la version précédente immédiate (version actuelle - 1) par défaut. Sauf si --force est transmis, les invites Y/N s'affichent avant de procéder au rollback.