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 adaptée à 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 la CLI, 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 Recommandations 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 n'utilisant pas Node.js ou ne le connaissant pas
npm Utilisez npm (Node Package Manager) pour installer la CLI et activer la commande firebase disponible dans le monde entier. Développeurs utilisant Node.js

binaire autonome

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

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

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

  3. Passez à l'étape Se connecter et tester la CLI.

npm

Pour utiliser npm (le gestionnaire de packages Node) afin d'installer la CLI Firebase, procédez comme suit :

  1. Installez Node.js à l'aide de nvm-windows (l'outil de gestion de versions Node). 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. Passez à l'étape Se 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 Recommandations 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 dans le monde entier.
Nouveaux développeurs

Développeurs n'utilisant pas Node.js ou ne le connaissant pas

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 dans le monde entier. 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 CLI Firebase, puis active la commande firebase disponible dans le monde entier.

  2. Passez à l'étape Se connecter et tester la CLI.

Pour obtenir plus d'exemples et de détails 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 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 de manière globale.

    1. Rendez le binaire exécutable en exécutant chmod +x ./firebase_tools.
    2. Ajoutez le chemin d'accès du binaire à votre PATH.
  3. Passez à l'étape Se connecter et tester la CLI.

npm

Pour utiliser npm (le gestionnaire de packages Node) afin d'installer la CLI Firebase, procédez comme suit :

  1. Installez Node.js à l'aide de nvm (outil de gestion de versions Node).
    L'installation de Node.js installe automatiquement les outils de ligne 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. Passez à l'étape Se 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. Connectez-vous à Firebase à l'aide de votre compte Google en exécutant la commande suivante :

    firebase login

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

  2. Vérifiez que la CLI est correctement installée et qu'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 règle générale, 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.

  • 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.

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

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

Désinstaller la CLI Firebase

La procédure de désinstallation de la CLI dépend de votre système d'exploitation et de la manière dont vous l'avez installée.

Windows

  • Binaire autonome : supprimez le binaire firebase.exe que vous avez téléchargé.
  • npm : exécutez npm uninstall -g firebase-tools.

macOS

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

  • Binaire autonome : supprimez le binaire firebase que vous avez téléchargé. Si vous avez ajouté son emplacement à votre variable d'environnement PATH, veillez à le supprimer.

  • npm : exécutez npm uninstall -g firebase-tools.

Linux

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

  • Binaire autonome : supprimez le binaire firebase que vous avez téléchargé. Si vous avez ajouté son emplacement à votre variable d'environnement PATH, veillez à le supprimer.

  • npm : exécutez npm uninstall -g firebase-tools.

Utiliser la CLI avec des 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

La CLI Firebase détectera et utilisera 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 graphique consiste à configurer les identifiants par défaut de l'application.

(Ancienne version) Utiliser 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 équipée d'un navigateur, installez la CLI Firebase.

  2. Lancez 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 d'intégration continue.

  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 : option, variable d'environnement, projet Firebase souhaité.

Initialiser un projet Firebase

De nombreuses tâches courantes effectuées à l'aide de la CLI, telles que le déploiement sur 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 répertoire 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 tout au long de la configuration du répertoire de votre projet et de certains produits Firebase. Lors de l'initialisation du projet, la CLI Firebase vous demande d'effectuer les tâches suivantes :

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

    Cette étape associe le répertoire du 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 (par exemple, un projet de préproduction et un projet de production) au même répertoire de projet.

  • Sélectionnez les produits Firebase à configurer dans votre projet Firebase.

    Cette étape vous invite à définir des configurations pour des fichiers spécifiques pour les produits ou fonctionnalités sélectionnés. Pour en savoir plus sur ces configurations, consultez la documentation du produit concerné (par exemple, Hosting ou Authentication). 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 requis 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 (comme les paramètres Hosting, les configurations de fournisseur Authentication, les règles de sécurité et la configuration Cloud Functions). Étant donné que certains paramètres peuvent être définis dans le répertoire de votre projet ou dans la console Firebase, veillez à résoudre les éventuels conflits de déploiement.

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 des paramètres pour ces services, comme un fichier index.js pour Cloud Functions. Vous pouvez également configurer des hooks de prédéploiement ou de postdéploiement dans le fichier firebase.json.

Le fichier firebase.json suivant est un exemple complet illustrant les options de configuration de nombreux services Firebase. Il présente également des fonctionnalités telles que la configuration de Cloud Functions et Local Emulator Suite pour plusieurs codebases, ainsi qu'un modèle Remote Config. Notez qu'un fichier firebase.json pour un projet donné ne contiendra que les configurations des services Firebase configurés pour ce projet spécifique (par exemple, uniquement Firebase Hosting et Cloud Functions). L'ajout de la clé $schema permet la validation et la saisie semi-automatique dans de nombreux éditeurs de code.

    {
      "$schema": "https://raw.githubusercontent.com/firebase/firebase-tools/master/schema/firebase-config.json",
      "hosting": {
        "public": "public",
        "ignore": [
          "firebase.json",
          "**/.*",
          "**/node_modules/**"
        ],
        "cleanUrls": true,
        "trailingSlash": false
      },
      "apphosting": {
        "backendId": "my-app",
        "rootDir": "backend",
        "ignore": [
          "firebase.json",
          "**/.*",
          "**/node_modules/**"
        ]
      },
      "firestore": {
        "rules": "firestore.rules",
        "indexes": "firestore.indexes.json"
      },
      "storage": {
        "rules": "storage.rules"
      },
      "database": {
        "rules": "database.rules.json"
      },
      "dataconnect": {
        "source": "dataconnect",
        "location": "us-central1"
      },
      "functions": [
        {
          "source": "functions",
          "codebase": "default",
          "ignore": [
            "**/.*",
            "**/node_modules/**"
          ],
          "predeploy": [
            "npm --prefix \"$RESOURCE_DIR\" run lint",
            "npm --prefix \"$RESOURCE_DIR\" run build"
          ]
        }
      ],
      "emulators": {
        "auth": {
          "port": 9099
        },
        "functions": {
          "port": 5001
        },
        "firestore": {
          "port": 8080
        },
        "hosting": {
          "port": 5000
        },
        "storage": {
          "port": 9199
        },
        "ui": {
          "enabled": true,
          "port": 4000
        },
        "singleProjectMode": true
      },
      "extensions": {
        "my-storage-resizer": "firebase/storage-resize-images@^0.1.0"
      },
      "auth": {
        "providers": {
          "anonymous": true,
          "emailPassword": true,
          "googleSignIn": {
            "oAuthBrandDisplayName": "My App",
            "supportEmail": "support@myapp.com"
          }
        }
      },
      "remoteconfig": {
        "template": "remoteconfig.template.json"
      }
    }

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

Configuration de 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 illustré dans l'exemple précédent.

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"
        }
      ],

Cloud Functions fichiers à 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 évite de déployer sur le backend des fichiers superflus qui pourraient augmenter la taille des données de votre déploiement.

La liste des fichiers ignorés par défaut, au format JSON, est la suivante :

"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, veillez à conserver (ou à ajouter, si elle est manquante) la liste des fichiers affichés dans la liste précédente.

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 basculer entre les alias et d'en créer d'autres.

Ajouter un alias de projet

Lorsque vous sélectionnez un projet Firebase lors de l'initialisation du projet, l'alias default lui est automatiquement attribué. Toutefois, pour permettre 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 à l'attribuer en tant qu'alias. Les attributions d'alias sont écrites dans un fichier .firebaserc 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 à partir du répertoire de votre projet.

Commande Description
firebase use Afficher la liste des alias définis pour votre répertoire de projet
firebase use \
PROJECT_ID|ALIAS
Indique que toutes les commandes doivent être exécutées sur le projet Firebase spécifié.
La 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 de la CLI.

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

Vous pouvez remplacer le projet actif en transmettant l'option --project avec n'importe quelle commande de la 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 exécuter, par exemple, firebase deploy --project=prod.

Contrôle des sources et alias de projet

En général, vous devez vérifier votre fichier .firebaserc dans le contrôle de code source pour permettre à votre équipe de partager les 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 réservé à votre usage personnel, vous pouvez transmettre l'option --project avec chaque commande ou exécuter firebase use PROJECT_ID sans attribuer d'alias au projet Firebase.

Diffusez et testez votre projet Firebase localement

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 une option 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.
  • 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 émuler votre projet à l'aide de fonctions HTTP locales.

  • Pour émuler les fonctions HTTP et l'hébergement afin de les tester sur 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 à partir d'autres appareils locaux

Par défaut, firebase serve ne répond qu'aux requêtes provenant 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'option --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 :

  • Nouvelles versions de 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 SQL Connect
  • Security Rules pour Firebase Realtime Database
  • Security Rules pour Cloud Storage for Firebase
  • Security Rules pour Cloud Firestore
  • Index pour Cloud Firestore
  • Configuration pour Authentication

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

firebase deploy

Vous pouvez éventuellement 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, tenez compte des points suivants :

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

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

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 d'éléments séparés par une virgule dans un flag de la commande firebase deploy. Par exemple, la commande suivante déploie le contenu Firebase Hosting et Cloud Storage Security Rules.

firebase deploy --only hosting,storage

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

Syntaxe des options Service ou fonctionnalité déployés
--only auth Configuration du fournisseur Authentication
--only database Firebase Realtime Database Security Rules
--only dataconnect Firebase SQL Connect : schémas et connecteurs
--only firestore Cloud Firestore Security Rules et index pour toutes les bases de données configurées
--only functions Cloud Functions for Firebase
--only hosting Contenu Firebase Hosting
--only storage Cloud Storage for Firebase Security Rules

Conflits de déploiement pour Security Rules

Pour Firebase Realtime Database, Cloud Storage for Firebase et Cloud Firestore, vous pouvez définir Security Rules dans le répertoire de votre projet local ou dans la console Firebase.

Une autre option pour éviter les conflits de déploiement consiste à utiliser un déploiement partiel et à ne définir Security Rules que dans la console Firebase.

Configurer des tâches de script 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 postdéploiement. Par exemple, un script de prédéploiement peut transpiler du code TypeScript en JavaScript, et un hook de post-déploiement peut avertir les administrateurs des nouveaux déploiements de contenu de site sur Firebase Hosting.

Pour configurer des hooks de prédéploiement ou de postdéploiement, ajoutez des scripts Bash à votre fichier de configuration firebase.json. Vous pouvez définir des scripts courts directement dans le fichier firebase.json ou référencer d'autres fichiers qui se trouvent dans le répertoire de votre projet.

Par exemple, le script suivant est l'expression firebase.json d'une tâche post-déploiement qui envoie un message Slack en cas de déploiement réussi sur 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 se présente comme suit :

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 élément 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 affichent les flux de sortie et d'erreur standards des scripts dans le terminal. En cas d'échec, tenez compte des 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

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

  • $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.

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 effectuer un rollback d'un déploiement Firebase Hosting depuis la page Firebase Hosting de votre projet en sélectionnant l'action Rollback pour la version choisie.

Il n'est pas possible d'effectuer un rollback des versions de Security Rules pour Firebase Realtime Database, Cloud Storage for Firebase ou Cloud Firestore.

Documentation de référence sur les commandes

Cette section décrit les commandes disponibles pour les cas d'utilisation et les produits suivants :

Commandes d'administration de la CLI

Commande Description
help Affichez des informations d'aide sur la CLI ou sur des commandes spécifiques.
init Associez et configurez 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

Authentifiez la CLI avec votre compte Google. Nécessite l'accès à un navigateur Web.

Pour vous connecter à la CLI dans des environnements distants qui n'autorisent pas l'accès à localhost, utilisez l'option --no-localhost.

login:ci Obsolète. Utilisez plutôt les identifiants par défaut de l'application avec un compte de service Google Cloud (GOOGLE_APPLICATION_CREDENTIALS).
Générez un jeton d'authentification à utiliser dans des environnements non interactifs.
login:add Connectez-vous à un autre compte Google.
login:list Lister tous les comptes Google authentifiés.
login:use \
EMAIL_ADDRESS
Définissez le compte Google actif.
logout Déconnectez votre compte Google de la CLI.
open Ouvrez un navigateur pour accéder aux ressources de projet pertinentes.
projects:list Répertoriez tous les projets Firebase auxquels vous avez accès.
use

Définissez le projet Firebase actif pour la CLI.

En savoir plus sur la gestion des alias de projet

Commandes de gestion de projet

Commande Description
Gestion des projets Firebase
projects:addfirebase Ajoutez des configurations spécifiques à Firebase et activez des services spécifiques à Firebase dans un projet Google Cloud existant.
projects:create Créez un projet Google Cloud, puis ajoutez-y des configurations spécifiques à Firebase et activez les services spécifiques à Firebase.
projects:list Répertoriez tous les projets Firebase auxquels vous avez accès.
Gestion des applications Firebase (iOS, Android, Web)
apps:create Créez une application Firebase.
apps:list Répertorie toutes les applications Firebase enregistrées dans le projet Firebase actif.
apps:sdkconfig \
[PLATFORM] \
[FIREBASE_APP_ID]

Imprimez la configuration Firebase de l'application Firebase spécifiée.

  • PLATFORM peut être IOS, ANDROID ou WEB (non sensible à la casse). Si vous omettez cette option, la CLI vous invite à sélectionner une application dans la liste de toutes les applications Firebase du projet Firebase actif. Si le projet Firebase actif ne comporte qu'une seule application Firebase, la CLI la sélectionne automatiquement.
  • FIREBASE_APP_ID est l'ID de l'application Firebase (nécessite de spécifier d'abord PLATFORM). Si cette option est omise, la CLI sélectionne automatiquement l'application si une seule correspond, ou vous invite à en sélectionner une si plusieurs correspondent.

Si la CLI s'exécute en mode non interactif :

  • Si le projet Firebase actif ne comporte qu'une seule application Firebase, vous pouvez omettre PLATFORM et FIREBASE_APP_ID.
  • Si le projet Firebase actif comporte plusieurs applications Firebase, vous devez spécifier PLATFORM (et FIREBASE_APP_ID si le projet comporte plusieurs applications Firebase de ce type de plate-forme).

Cette commande accepte l'option facultative suivante :

  • -o ou --out [FILENAME]
    Écrit la sortie de configuration dans un fichier au lieu de l'imprimer sur la sortie standard. Si FILENAME est omis, le nom de fichier par défaut est spécifique à la plate-forme (GoogleService-Info.plist pour iOS, google-services.json pour Android ou firebase-js-config.json pour le Web). Si le fichier cible existe déjà, la CLI vous invite à confirmer l'écrasement (ou échoue en mode non interactif).
Gestion des hachages de certificats SHA (Android uniquement)
apps:android:sha:create \
FIREBASE_ANDROID_APP_ID \
SHA_HASH
Ajoutez le hachage de certificat SHA spécifié à l'application Android Firebase spécifiée.
apps:android:sha:delete \
FIREBASE_ANDROID_APP_ID \
SHA_ID
Supprime le certificat SHA spécifié (identifié par son SHA_ID de apps:android:sha:list) de l'application Android Firebase spécifiée.
apps:android:sha:list \
FIREBASE_ANDROID_APP_ID
Répertorie tous 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 projet Firebase et d'interagir avec lui.

Commande Description
deploy

Déployez le code et les éléments de votre répertoire de projet dans le projet Firebase actif.

Cette commande nécessite un fichier de configuration firebase.json dans le répertoire de votre projet.

En savoir plus sur le déploiement dans un projet Firebase

serve

Démarrez un serveur local pour tester votre configuration Firebase Hosting et/ou votre Cloud Functions HTTP local (par exemple, à l'aide de --only hosting ou --only functions).

Cette commande nécessite un fichier de configuration firebase.json dans le répertoire de votre projet.

En savoir plus sur la diffusion et les tests en local

Commandes App Distribution

Commande Description
appdistribution:distribute \
RELEASE_BINARY_FILE \
--app FIREBASE_APP_ID
Importez le fichier binaire de version spécifié (.apk, .aab ou .ipa) et mettez-le à la disposition des testeurs pour l'application Firebase spécifiée.
appdistribution:testers:add \
[EMAILS...]

Ajoutez un ou plusieurs testeurs (spécifiés sous la forme d'un EMAILS séparé par des espaces) au projet Firebase actif. Si EMAILS est omis, vous devez transmettre --file FILE.

Cette commande ajoute uniquement les testeurs qui ne sont pas déjà dans le projet. Elle ne supprime ni ne remplace les testeurs existants.

Cette commande accepte les options facultatives suivantes :

  • --file FILE
    Spécifiez le chemin d'accès à un fichier non vide contenant les adresses e-mail des testeurs à ajouter, séparées par une virgule ou un saut de ligne. Si EMAILS et --file sont tous deux transmis, EMAILS est prioritaire.
  • --group-alias GROUP_ALIAS
    Ajoutez également les testeurs spécifiés au groupe de testeurs identifié par GROUP_ALIAS.
appdistribution:testers:remove \
[EMAILS...]

Supprimez les testeurs (spécifiés sous la forme d'une liste d'EMAILS séparés par des espaces) du projet Firebase actif. Si EMAILS est omis, vous devez transmettre --file FILE.

Cette commande accepte les options facultatives suivantes :

  • --file FILE
    Spécifiez le chemin d'accès à un fichier contenant les adresses e-mail des testeurs à supprimer, séparées par une virgule ou un saut de ligne. (Si EMAILS et --file sont tous deux transmis, EMAILS est prioritaire.)
  • --group-alias GROUP_ALIAS
    Supprimez uniquement les testeurs spécifiés du groupe de testeurs identifié par GROUP_ALIAS, au lieu de les supprimer du projet Firebase actif.
appdistribution:testers:list Répertorie les testeurs du projet Firebase actif.
appdistribution:groups:create \
DISPLAY_NAME \
[GROUP_ALIAS]
Créez un groupe de testeurs avec l'DISPLAY_NAME spécifié et l'GROUP_ALIAS facultatif.
Si GROUP_ALIAS est omis, un alias est automatiquement généré à partir de DISPLAY_NAME.
appdistribution:groups:delete \
GROUP_ALIAS
Supprimez le groupe de testeurs avec l'alias spécifié.
appdistribution:groups:list Répertoriez tous les groupes de testeurs du projet Firebase actif.

Commandes App Hosting

Commande Description
apphosting:backends:create \
--backend BACKEND_ID \
--primary-region REGION_NAME \
--app FIREBASE_WEB_APP_ID

Créez l'ensemble de ressources gérées associées à un codebase unique qui comprend un backend App Hosting.

Cette commande accepte les options facultatives (mais recommandées) suivantes :

  • --backend BACKEND_ID
    Spécifiez l'ID du nouveau backend App Hosting. Si vous l'omettez en mode interactif, la CLI vous invite à saisir un ID de backend.
  • --primary-region REGION_NAME
    Spécifiez la région principale dans laquelle créer le backend App Hosting. Si vous omettez ce paramètre en mode interactif, la CLI vous invite à sélectionner un emplacement. En savoir plus sur les emplacements compatibles avec App Hosting
  • -a ou --app FIREBASE_WEB_APP_ID
    Spécifiez l'ID d'une application Web Firebase existante. Si cet ID est omis, la CLI crée et associe automatiquement une nouvelle application Web Firebase nommée d'après BACKEND_ID (sauf si le projet a atteint son quota d'applications Firebase).

Cette commande accepte également les options facultatives suivantes :

  • --root-dir ROOT_DIR
    Spécifiez le répertoire racine de votre application par rapport à votre dépôt. Si cette option est omise en mode interactif, la CLI vous invite à indiquer le répertoire (par défaut, /).
  • -s ou --service-account SERVICE_ACCOUNT
    Spécifiez le compte de service utilisé pour exécuter le serveur. Si cette valeur est omise, le compte de service Compute App Hosting par défaut est utilisé.

Si la CLI s'exécute en mode non interactif, à la fois --backend et --primary-region sont requis.

apphosting:backends:get \
BACKEND_ID

Récupérez les détails, y compris l'URL publique, du backend App Hosting spécifié.

Si plusieurs régions contiennent un backend avec le BACKEND_ID spécifié, la CLI consigne un avertissement et affiche le premier backend correspondant (notez que cette commande n'est pas compatible avec l'option --location).

apphosting:backends:list Répertoriez tous les backends App Hosting actifs dans le projet Firebase actif.
apphosting:backends:delete \
BACKEND_ID

Supprime le backend App Hosting spécifié.

La CLI affiche une invite de confirmation avant d'effectuer l'action. Pour ignorer l'invite de confirmation (obligatoire en mode non interactif), transmettez les options suivantes : -f ou --force.

Si plusieurs régions contiennent un backend avec le BACKEND_ID spécifié, la CLI vous invite en mode interactif à sélectionner le ou les backends à supprimer, et échoue si -f ou --force est transmis (notez que cette commande n'est pas compatible avec l'option --location).

apphosting:rollouts:create \
BACKEND_ID

Créez un déploiement déclenché manuellement pour le backend App Hosting spécifié.

Cette commande accepte les options facultatives mutuellement exclusives suivantes. Si aucune de ces options n'est fournie, la CLI vous invite à sélectionner une branche dans une liste. En mode non interactif, vous devez fournir l'une de ces options.

  • -b ou --git-branch BRANCH_NAME
    Déployez le dernier commit sur la branche Git spécifiée.
  • -g ou --git-commit COMMIT_ID
    Déployez le commit Git spécifié.

Si plusieurs régions contiennent un backend avec le BACKEND_ID spécifié, cette commande échoue en mode interactif et non interactif (notez que cette commande n'est pas compatible avec l'option --location).

apphosting:secrets:set \
SECRET_NAME \
--data-file DATA_FILE_PATH

Créez ou mettez à jour un secret dans Google Cloud Secret Manager avec le SECRET_NAME spécifié.

Cette commande accepte l'option facultative (mais recommandée) suivante :

  • --data-file DATA_FILE_PATH
    Spécifiez un chemin d'accès à partir duquel lire les données du secret, ou définissez-le sur - pour lire les données du secret à partir de l'entrée standard. Si cette option est omise, la CLI vous invite à saisir la valeur du secret (avec une entrée masquée) ou lit l'entrée standard si l'entrée standard est redirigée.

Cette commande accepte également l'option facultative suivante :

  • -l ou --location REGION_NAME
    Lors de la création d'un secret, limitez sa réplication à la région Google Cloud Secret Manager spécifiée. Si ce paramètre est omis, Google Cloud Secret Manager utilise la réplication globale automatique. (Les règles de réplication ne peuvent pas être modifiées pour les secrets existants.)

Si la CLI s'exécute en mode non interactif, transmettez --data-file DATA_FILE_PATH (ou transmettez la valeur du secret à l'entrée standard).

apphosting:secrets:grantaccess \
SECRET_NAME

Accordez des autorisations sur les secrets spécifiés à un ensemble d'adresses e-mail d'utilisateurs ou de groupes, ou au compte de service d'un backend. Les secrets sont ensuite accessibles par App Hosting au moment de la compilation ou de l'exécution.

Vous pouvez transmettre une ou plusieurs valeurs SECRET_NAME, séparées par une virgule. Vous devez spécifier --emails ou --backend (ces deux options s'excluent mutuellement).

Accordez l'accès à un ensemble d'adresses e-mail d'utilisateurs ou de groupes :

  • -e ou --emails EMAILS
    Spécifiez une liste d'adresses e-mail d'utilisateurs ou de groupes séparées par une virgule, qui doivent être autorisées à accéder aux secrets spécifiés.

Accordez l'accès au compte de service d'un backend :

  • -b ou --backend BACKEND_ID
    Spécifiez le backend App Hosting dont le compte de service doit être autorisé à accéder aux secrets spécifiés.
  • -l ou --location REGION_NAME
    Spécifiez la région du backend App Hosting. Si cette option est omise, la CLI recherche le BACKEND_ID correspondant dans toutes les régions. Si plusieurs régions contiennent un backend avec cet ID, la CLI vous invite à en choisir un en mode interactif (en mode non interactif, --location est obligatoire).
apphosting:secrets:revokeaccess \
SECRET_NAME

Révoquez les autorisations d'accès aux secrets spécifiés pour un ensemble d'adresses e-mail d'utilisateurs ou de groupes, ou pour un compte de service de backend.

Vous pouvez transmettre une ou plusieurs valeurs SECRET_NAME, séparées par une virgule. Vous devez spécifier --emails ou --backend (ces deux options s'excluent mutuellement).

Révoquez l'accès d'un ensemble d'adresses e-mail d'utilisateurs ou de groupes :

  • -e ou --emails EMAILS
    Spécifiez une liste d'adresses e-mail d'utilisateurs ou de groupes, séparées par une virgule, pour lesquels vous souhaitez révoquer l'accès aux secrets spécifiés.

Révoquez l'accès du compte de service d'un backend :

  • -b ou --backend BACKEND_ID
    Spécifiez le backend App Hosting dont le compte de service doit se voir révoquer l'accès aux secrets spécifiés.
  • -l ou --location REGION_NAME
    Spécifiez la région du backend App Hosting. Si cette option est omise, la CLI recherche le BACKEND_ID correspondant dans toutes les régions. Si plusieurs régions contiennent un backend avec cet ID, la CLI vous invite à en choisir un en mode interactif (en mode non interactif, --location est obligatoire).
apphosting:secrets:describe \
SECRET_NAME
Récupérez les métadonnées et les versions du nom de secret spécifié.
apphosting:secrets:access \
SECRET_NAME[@VERSION]
Accédez à la valeur du secret pour le nom de secret spécifié dans la version spécifiée.
Si [@VERSION] est omis, la dernière version est utilisée par défaut.

Commandes Authentication (gestion des utilisateurs)

Commande Description
auth:export \
DATA_FILE

Exportez les comptes utilisateur du projet Firebase actif vers un fichier JSON ou CSV.

Pour en savoir plus, consultez la page auth:import et auth:export.

auth:import \
DATA_FILE

Importez les comptes utilisateur d'un fichier JSON ou CSV dans le projet Firebase actif.

Pour en savoir plus, consultez la page auth:import et auth:export.

Commandes Cloud Firestore

Commande Description
firestore:locations

Répertoriez les emplacements disponibles pour les instances de base de données Cloud Firestore dans le projet Firebase actif.

Découvrez les emplacements disponibles pour l'édition Standard, l'édition Enterprise et la compatibilité avec MongoDB.

firestore:databases:create \
DATABASE_ID \
--location REGION_NAME

Crée l'instance de base de données Cloud Firestore spécifiée (en mode natif) à l'emplacement spécifié.
Exécutez firebase firestore:locations pour lister les emplacements disponibles pour REGION_NAME.

Cette commande accepte les options facultatives suivantes :

  • --delete-protection DELETION_PROTECTION_STATE
    Autorisez ou empêchez la suppression de l'instance de base de données Cloud Firestore spécifiée. Les valeurs valides sont ENABLED ou DISABLED. Si aucune valeur n'est spécifiée, la valeur par défaut est DISABLED.
  • --point-in-time-recovery PITR_STATE
    Définissez si la récupération à un moment précis est activée pour l'instance de base de données Cloud Firestore spécifiée. Les valeurs valides sont ENABLED ou DISABLED. Si aucune valeur n'est spécifiée, la valeur par défaut est DISABLED.
  • --edition EDITION
    Définissez l'édition de l'instance de base de données Cloud Firestore spécifiée.
    Les valeurs valides sont standard ou enterprise. Si aucune valeur n'est spécifiée, la valeur par défaut est standard.
  • --firestore-data-access ENABLEMENT_STATE
    (Édition Enterprise uniquement) Contrôlez la disponibilité de l'API Cloud Firestore. Les valeurs valides sont ENABLED ou DISABLED. Si aucune valeur n'est spécifiée, la valeur par défaut est ENABLED (toutefois, lorsque --mongodb-compatible-data-access est défini sur ENABLED, la valeur par défaut est DISABLED).
  • --mongodb-compatible-data-access ENABLEMENT_STATE
    (Édition Enterprise uniquement) Contrôlez la disponibilité de l'API compatible MongoDB. Les valeurs valides sont ENABLED ou DISABLED. Si aucune valeur n'est spécifiée, la valeur par défaut est DISABLED.
  • --realtime-updates ENABLEMENT_STATE
    (Édition Enterprise uniquement) Activez ou désactivez la fonctionnalité "Surveiller" (temps réel). Les valeurs valides sont ENABLED ou DISABLED. Si cette option est omise, la valeur par défaut est ENABLED lorsque --firestore-data-access est ENABLED (sinon, la valeur par défaut du serveur est utilisée).
    La définition de cette option nécessite que --firestore-data-access soit défini sur ENABLED.
firestore:databases:list

Répertoriez toutes les instances de base de données Cloud Firestore dans le projet Firebase actif.

firestore:databases:get \
[DATABASE_ID]

Récupérez la configuration de la base de données pour l'instance de base de données Cloud Firestore spécifiée.
Si DATABASE_ID est omis, l'instance de base de données Cloud Firestore par défaut du projet Firebase actif est utilisée par défaut.

Le résultat de la table inclut le Edition de la base de données pour toutes les bases de données. Les champs d'état d'accès aux données d'entreprise et de mises à jour en temps réel ne sont inclus dans la sortie JSON brute que lorsque --json est transmis.

firestore:databases:update \
DATABASE_ID

Mettez à jour la configuration de la base de données de l'instance de base de données Cloud Firestore spécifiée.

Au moins un indicateur est requis (les indicateurs omis conservent leurs paramètres actuels). Cette commande accepte les options suivantes :

  • --delete-protection DELETION_PROTECTION_STATE
    Autorisez ou empêchez la suppression de l'instance de base de données Cloud Firestore spécifiée. Les valeurs valides sont ENABLED ou DISABLED.
  • --point-in-time-recovery PITR_STATE
    Définissez si la récupération à un moment précis est activée pour l'instance de base de données Cloud Firestore spécifiée. Les valeurs valides sont ENABLED ou DISABLED.
firestore:databases:delete \
DATABASE_ID

Supprimez l'instance de base de données Cloud Firestore spécifiée.

La CLI affiche une invite de confirmation avant d'effectuer l'action. Pour ignorer l'invite de confirmation (obligatoire en mode non interactif), transmettez l'option --force. (Contrairement aux autres commandes, firestore:databases:delete n'est pas compatible avec le raccourci -f.)

firestore:indexes

Répertoriez tous les index d'une instance de base de données Cloud Firestore.

Cette commande accepte l'option facultative suivante :

  • --database DATABASE_ID
    Spécifiez l'instance de base de données Cloud Firestore pour laquelle lister les index. S'il est omis, les index sont listés pour l'instance de base de données Cloud Firestore par défaut du projet Firebase actif.
firestore:delete \
[PATH]

Supprimez les documents situés au chemin d'accès à la base de données spécifié (PATH) d'une instance de base de données Cloud Firestore.

PATH est obligatoire, sauf si --all-collections est transmis. La suppression d'une collection ou d'un document contenant des sous-collections échoue, sauf si -r/--recursive ou --shallow est transmis.

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

Cette commande accepte les options facultatives suivantes :

  • --database DATABASE_ID
    Spécifiez la base de données Cloud Firestore à partir de laquelle les documents doivent être supprimés. S'il est omis, les documents sont supprimés de l'instance de base de données Cloud Firestore par défaut du projet Firebase actif.
  • --all-collections
    Supprimez toutes les collections de la base de données. (Ne transmettez pas PATH lorsque vous utilisez cette option.)
  • -r ou --recursive
    Supprime de manière récursive tous les documents et sous-collections du chemin d'accès spécifié. (Ne peut pas être transmis avec --shallow.)
  • --shallow
    Supprimez uniquement les documents au niveau spécifié et ignorez les documents des sous-collections. Sachez que cela peut laisser des documents imbriqués orphelins. (Ne peut pas être transmis avec -r ou --recursive.)

La CLI affiche une invite de confirmation avant d'effectuer l'action. Pour ignorer l'invite de confirmation (obligatoire en mode non interactif), transmettez les options suivantes : -f ou --force.

Commandes Cloud Functions for Firebase

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

Commande Description
functions:config:export

Exportez l'ancienne configuration d'exécution functions.config() du projet Firebase actif en tant que secret JSON unique dans Google Cloud Secret Manager (à utiliser avec defineJsonSecret).

Cette commande accepte les options facultatives suivantes :

  • --secret SECRET_NAME
    Spécifiez le nom du secret à créer ou à mettre à jour dans Google Cloud Secret Manager. Si vous omettez ce paramètre, la CLI vous invite à saisir un nom (FUNCTIONS_CONFIG_EXPORT par défaut).
  • -f ou --force
    Utilisez le nom de secret par défaut (FUNCTIONS_CONFIG_EXPORT) sans invite et ajoutez une nouvelle version de secret sans confirmation si le secret existe déjà. (Obligatoire pour ajouter une nouvelle version à un secret existant en mode non interactif.)
functions:delete \
FUNCTION_NAME...

Supprimez une ou plusieurs fonctions spécifiées du projet Firebase actif.

La CLI affiche une invite de confirmation avant d'effectuer l'action. Pour ignorer l'invite de confirmation (obligatoire en mode non interactif), transmettez les options suivantes : -f ou --force.

functions:list Répertorie toutes les fonctions déployées dans le projet Firebase actif.
functions:log Lire les journaux de toutes les Cloud Functions déployées dans le projet Firebase actif.
functions:secrets:access \
SECRET_NAME[@VERSION]
Accédez à la valeur du secret pour le nom de secret spécifié dans la version spécifiée.
Si [@VERSION] est omis, la dernière version est utilisée par défaut.
functions:secrets:destroy \
SECRET_NAME[@VERSION]

Détruisez le secret spécifié à la version spécifiée.
Si [@VERSION] est omis, la dernière version est détruite par défaut.

La CLI affiche une invite de confirmation avant d'effectuer une action, qui se confirme automatiquement en mode non interactif sans -f ni --force. Toutefois, si le secret est toujours lié à des points de terminaison de fonction actifs, vous devez transmettre -f ou --force pour le détruire.

functions:secrets:get \
SECRET_NAME
Récupérez les métadonnées et les versions du nom de secret spécifié.
functions:secrets:prune Détruisez tous les secrets inutilisés dans le projet Firebase actif.
functions:secrets:set \
SECRET_NAME
Créez ou mettez à jour le secret spécifié.
functions:shell Démarrez un shell interactif local pour tester les fonctions.
functions:config:clone \
--from PROJECT_ID

Obsolète.
Clonez l'environnement d'un autre projet dans le projet Firebase actif.

Désactivé par défaut Pour utiliser cette commande, exécutez d'abord firebase experiments:enable legacyRuntimeConfigCommands.

functions:config:get Obsolète.
Récupérez les valeurs de configuration existantes du fichier Cloud Functions du projet Firebase actif.
functions:config:set \
KEY=VALUE...

Obsolète.
Stocker les valeurs de configuration d'exécution du Cloud Functions du projet Firebase actif.

Désactivé par défaut Pour utiliser cette commande, exécutez d'abord firebase experiments:enable legacyRuntimeConfigCommands.

functions:config:unset \
KEY...

Obsolète.
Supprimez des valeurs de la configuration d'exécution du projet Firebase actif.

Désactivé par défaut Pour utiliser cette commande, exécutez d'abord firebase experiments:enable legacyRuntimeConfigCommands.

Commandes Crashlytics

Commande Description
crashlytics:mappingfile:generateid \
--resource-file PATH/TO/ANDROID_RESOURCE.XML
Générez 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
Importez un fichier de mappage (TXT) compatible avec Proguard pour l'application Firebase spécifiée, puis associez-le à l'ID du 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érez un fichier de symboles compatible avec Crashlytics pour les plantages de bibliothèques natives Android (par exemple, NDK Android ou les builds Android d'Unity ou Flutter) et importez-le sur les serveurs Firebase.

Cette commande n'est compatible qu'avec Android. Pour les dSYM iOS, utilisez le script upload-symbols du SDK Apple.

Commandes Extensions

Commande Description
ext Affichez des informations sur l'utilisation des commandes Firebase Extensions.
Répertoriez les instances d'extension installées dans le projet actif.
ext:configure \
EXTENSION_INSTANCE_ID
Reconfigurez les valeurs de paramètre d'une instance d'extension dans votre fichier manifeste d'extension.
ext:info \
PUBLISHER_ID/EXTENSION_ID
Imprimez des informations détaillées sur une extension.
ext:install \
PUBLISHER_ID/EXTENSION_ID
Ajoutez une nouvelle instance d'une extension à votre fichier manifeste d'extension.
ext:sdk:install \
EXTENSION_NAME
Installez les SDK pour définir des extensions dans les fonctions.
ext:list Répertoriez toutes les instances d'extension installées dans un projet Firebase.
Imprimez l'ID d'instance de chaque extension.
ext:uninstall \
EXTENSION_INSTANCE_ID
Supprimez une instance d'extension de votre fichier manifeste d'extension.
ext:update \
EXTENSION_INSTANCE_ID \
[UPDATE_SOURCE]

Mettez à jour une instance d'extension vers la dernière version (ou vers la version UPDATE_SOURCE publiée spécifiée) dans votre fichier manifeste d'extension. Notez que pour UPDATE_SOURCE, les chemins d'accès locaux et les URL ne sont pas acceptés.

La CLI affiche une invite de confirmation avant d'effectuer l'action. Vous pouvez transmettre -f ou --force pour ignorer cette invite en mode interactif. Toutefois, ext:update est une commande interactive uniquement et n'est pas compatible avec le mode non interactif, même avec -f ou --force.

ext:export Exportez toutes les instances d'extension installées de votre projet vers votre fichier manifeste d'extension.

Extensions commandes de l'éditeur

Commande Description
ext:dev:init Initialisez un squelette de codebase pour une nouvelle extension dans le répertoire actuel.
ext:dev:list \
PUBLISHER_ID
Imprimez la liste de toutes les extensions importées par un éditeur.
ext:dev:register Désactivé
L'enregistrement de nouveaux ID de profil d'éditeur n'est plus possible.
ext:dev:deprecate \
PUBLISHER_ID/EXTENSION_ID \
[VERSION_PREDICATE]
Abandonner les versions d'extension qui correspondent au prédicat de version.
Un prédicat de version peut être une version unique (par exemple, 1.0.0) ou une plage de versions (par exemple, >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
Annuler l'abandon des versions d'extension qui correspondent au prédicat de version.
Un prédicat de version peut être une seule version (par exemple, 1.0.0) ou une plage de versions (par exemple, >1.0.0).
ext:dev:upload \
PUBLISHER_ID/EXTENSION_ID
Importez une nouvelle version d'une extension.
ext:dev:usage \
PUBLISHER_ID
Affichez le nombre d'installations et les métriques d'utilisation des extensions importées par un éditeur.

Commandes Hosting

Commande Description
hosting:disable

Arrêtez de diffuser le trafic Firebase Hosting pour un site Hosting.

L'URL Hosting du site affichera un message "Site introuvable" après l'exécution de cette commande.

Cette commande accepte l'option facultative suivante :

  • --site SITE_ID
    Spécifiez le site Hosting à désactiver. Si cette option est omise, le site par défaut Hosting du projet Firebase actif est utilisé par défaut.

La CLI affiche une invite de confirmation avant d'effectuer l'action. Pour ignorer l'invite de confirmation (obligatoire en mode non interactif), transmettez les options suivantes : -f ou --force.

Gestion de Hosting sites
hosting:sites:create \
[SITE_ID]

Créez un site Hosting à l'aide de l'SITE_ID spécifié.

Si la CLI s'exécute en mode non interactif, SITE_ID est requis.

Cette commande accepte l'option facultative suivante :

  • --app FIREBASE_APP_ID
    Spécifiez une application Web Firebase existante à associer au nouveau site Hosting.
hosting:sites:delete \
SITE_ID

Supprimez le site Hosting spécifié.

La CLI affiche une invite de confirmation avant d'effectuer l'action. Pour ignorer l'invite de confirmation (obligatoire en mode non interactif), transmettez les options suivantes : -f ou --force.

hosting:sites:get \
SITE_ID

Récupérez les détails du site Hosting spécifié.

Le résultat de la table inclut l'ID du site, l'URL par défaut et l'ID de l'application Web Firebase (si elle est associée). Les métadonnées supplémentaires (par exemple, si le site est le DEFAULT_SITE ou un USER_SITE) ne sont incluses dans la sortie JSON brute que lorsque --json est transmis.

hosting:sites:list Répertoriez tous les sites Hosting du projet Firebase actif.
Gestion des canaux de prévisualisation
hosting:channel:create \
[CHANNEL_ID]

Créez un canal d'aperçu pour un site Hosting à l'aide du CHANNEL_ID spécifié.
Cette commande ne déploie pas sur le canal.

Si la CLI s'exécute en mode non interactif, CHANNEL_ID est requis.

Cette commande accepte l'option facultative suivante :

  • --site SITE_ID
    Spécifiez le site Hosting dans lequel créer le canal d'aperçu. Si cette option est omise, le site par défaut Hosting du projet Firebase actif est utilisé par défaut.
hosting:channel:delete \
CHANNEL_ID

Supprime le canal d'aperçu spécifié. Vous ne pouvez pas supprimer le canal de diffusion en direct d'un site.

Cette commande accepte l'option facultative suivante :

  • --site SITE_ID
    Spécifiez le site Hosting à partir duquel supprimer le canal d'aperçu. Si cette option est omise, le site par défaut Hosting du projet Firebase actif est utilisé par défaut.

La CLI affiche une invite de confirmation avant d'effectuer l'action. Pour ignorer l'invite de confirmation (obligatoire en mode non interactif), transmettez les options suivantes : -f ou --force.

hosting:channel:deploy \
CHANNEL_ID

Déployez votre contenu et votre configuration 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 Hosting avant de déployer sur le canal.

Cette commande accepte l'option facultative suivante :

  • --only TARGETS
    Spécifiez une liste de cibles Hosting séparées par une virgule configurées dans firebase.json pour le déploiement sur le canal de prévisualisation. Si cette option est omise, le déploiement est effectué sur tous les sites Hosting configurés dans firebase.json.
hosting:channel:list

Répertoriez tous les canaux (y compris le canal "live") d'un site Hosting.

Cette commande accepte l'option facultative suivante :

  • --site SITE_ID
    Spécifiez le site Hosting pour lequel lister les canaux. Si cette option est omise, le site par défaut Hosting du projet Firebase actif est utilisé par défaut.
hosting:channel:open \
[CHANNEL_ID]

Ouvrez un navigateur à l'URL de la chaîne spécifiée ou renvoyez l'URL si l'ouverture dans un navigateur n'est pas possible.

Si la CLI s'exécute en mode non interactif, CHANNEL_ID est requis.

Cette commande accepte l'option facultative suivante :

  • --site SITE_ID
    Spécifiez le site Hosting pour le canal de prévisualisation. Si cette option est omise, le site par défaut Hosting du projet Firebase actif est utilisé par défaut.
Clonage de version
hosting:clone \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Clonez la version déployée la plus récente sur le canal "source" spécifié vers le canal "cible" spécifié.

Cette commande effectue également le déploiement sur le canal "cible" spécifié. Si le canal "cible" n'existe pas encore, cette commande crée un canal d'aperçu dans le site Hosting "cible" avant de le déployer sur le canal.

hosting:clone \
SOURCE_SITE_ID@VERSION_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

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

Cette commande effectue également le déploiement sur le canal "cible" spécifié. Si le canal "cible" n'existe pas encore, cette commande crée un canal d'aperçu dans le site Hosting "cible" avant de le déployer sur le canal.

Vous trouverez le 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 flux firebase init database spécifique.

Une fois les instances créées, vous pouvez les gérer comme décrit dans Gérer des instances spécifiques et interagir avec elles à l'aide de la CLI.

Commande Description
database:get \
PATH

Récupérez les données à l'emplacement de base de données spécifié (PATH) pour une instance Realtime Database et affichez-les au format JSON. Permet d'interroger les données indexées.

Cette commande accepte l'option facultative suivante :

  • --instance DATABASE_NAME
    Spécifiez l'instance Realtime Database pour l'action. Si ce paramètre est omis, l'instance par défaut Realtime Database du projet Firebase actif est utilisée.
database:instances:create \
DATABASE_NAME \
--location REGION_NAME

Créez une instance Realtime Database avec l'ID DATABASE_NAME spécifié à l'emplacement spécifié.

Cette commande accepte l'option facultative (mais recommandée) suivante :

Vous ne pouvez pas utiliser cette commande pour créer l'instance Realtime Database par défaut du projet Firebase actif. Si le projet ne contient aucune instance Realtime Database, vous êtes invité à exécuter le flux firebase init pour créer la première instance Realtime Database du projet (l'instance par défaut).

database:instances:list

Répertoriez toutes les instances Realtime Database du projet Firebase actif.

Cette commande accepte l'option facultative suivante :

  • --location REGION_NAME
    Spécifiez un emplacement spécifique pour lister les instances Realtime Database. Pour connaître les noms des régions disponibles, consultez Emplacements pour Realtime Database.
database:profile

Créez un profil d'opérations pour une instance Realtime Database.
Pour en savoir plus, consultez Types d'opérations Realtime Database.

Cette commande accepte l'option facultative suivante :

  • --instance DATABASE_NAME
    Spécifiez l'instance Realtime Database pour l'action. Si ce paramètre est omis, l'instance par défaut Realtime Database du projet Firebase actif est utilisée.
database:push \
PATH \
[INFILE]

Transférer de nouvelles données vers une liste à l'emplacement de base de données spécifié (PATH) dans une instance Realtime Database.

Prend l'entrée d'un fichier (INFILE), de STDIN ou de l'option -d (--data).

Cette commande accepte l'option facultative suivante :

  • --instance DATABASE_NAME
    Spécifiez l'instance Realtime Database pour l'action. Si ce paramètre est omis, l'instance par défaut Realtime Database du projet Firebase actif est utilisée.
database:remove \
PATH

Supprimez toutes les données de l'emplacement de base de données spécifié (PATH) dans une instance Realtime Database.

Cette commande accepte l'option facultative suivante :

  • --instance DATABASE_NAME
    Spécifiez l'instance Realtime Database pour l'action. Si ce paramètre est omis, l'instance par défaut Realtime Database du projet Firebase actif est utilisée.

La CLI affiche une invite de confirmation avant d'effectuer l'action. Pour ignorer l'invite de confirmation (obligatoire en mode non interactif), transmettez les options suivantes : -f ou --force.

database:set \
PATH \
[INFILE]

Remplacez toutes les données à l'emplacement de base de données spécifié (PATH) dans une instance Realtime Database.

Prend l'entrée d'un fichier (INFILE), de STDIN ou de l'option -d (--data).

Cette commande accepte l'option facultative suivante :

  • --instance DATABASE_NAME
    Spécifiez l'instance Realtime Database pour l'action. Si ce paramètre est omis, l'instance par défaut Realtime Database du projet Firebase actif est utilisée.

La CLI affiche une invite de confirmation avant d'effectuer l'action. Pour ignorer l'invite de confirmation (obligatoire en mode non interactif), transmettez les options suivantes : -f ou --force.

database:update \
PATH \
[INFILE]

Effectuez une mise à jour partielle à l'emplacement de base de données spécifié (PATH) dans une instance Realtime Database.

Prend l'entrée d'un fichier (INFILE), de STDIN ou de l'option -d (--data).

Cette commande accepte l'option facultative suivante :

  • --instance DATABASE_NAME
    Spécifiez l'instance Realtime Database pour l'action. Si ce paramètre est omis, l'instance par défaut Realtime Database du projet Firebase actif est utilisée.

La CLI affiche une invite de confirmation avant d'effectuer l'action. Pour ignorer l'invite de confirmation (obligatoire en mode non interactif), transmettez les options suivantes : -f ou --force.

Commandes Remote Config

Ces commandes et leurs cas d'utilisation sont traités plus en détail dans Modifier Remote Config de manière programmatique.

Commande Description
remoteconfig:versions:list

Répertoriez toutes les versions du modèle Remote Config.

Cette commande accepte l'option facultative suivante :

  • --limit NUMBER_OF_VERSIONS
    Spécifiez le nombre maximal de versions à renvoyer. Spécifiez 0 pour renvoyer toutes les versions existantes. Si aucune valeur n'est spécifiée, la valeur par défaut est 10.
remoteconfig:get \
--version-number VERSION_NUMBER

Récupérez les détails du modèle Remote Config à la version spécifiée.

Cette commande accepte les options facultatives (mais recommandées) suivantes :

  • -v ou --version-number VERSION_NUMBER
    Spécifiez la version du modèle Remote Config à récupérer. Si aucune valeur n'est spécifiée, la valeur par défaut est la dernière version.
  • -o ou --output FILENAME
    Écrit le résultat dans un fichier JSON portant le nom de fichier spécifié au lieu de l'imprimer sous forme de tableau.
remoteconfig:rollback \
--version-number VERSION_NUMBER

Effectuez un rollback du modèle Remote Config vers la version précédente spécifiée.

Cette commande accepte l'option facultative (mais recommandée) suivante :

  • -v ou --version-number VERSION_NUMBER
    Spécifiez la version du modèle Remote Config à restaurer. Si cette valeur est omise, la valeur par défaut est la version immédiatement précédente (version actuelle - 1).

La CLI affiche une invite de confirmation avant d'effectuer l'action. Pour ignorer l'invite de confirmation (obligatoire en mode non interactif), transmettez les options suivantes : -f ou --force.

remoteconfig:experiments:list

Répertoriez tous les tests Remote Config du projet Firebase actif.

Cette commande accepte les options facultatives suivantes :

  • --filter EXPRESSION
    Spécifiez l'expression pour filtrer les tests.
  • --pageSize NUMBER
    Spécifiez le nombre de tests à renvoyer par page. Si aucune valeur n'est spécifiée, la valeur par défaut est 10.
  • --pageToken TOKEN
    Spécifiez le décalage de départ de la liste.
remoteconfig:experiments:get \
EXPERIMENT_ID

Récupérez les détails du test Remote Config spécifié.

Le résultat du tableau inclut le nom de la ressource du test, le nom à afficher, l'état (PENDING, RUNNING, DONE ou EXPIRED), les heures de début et de fin, les variantes (noms et pondérations de la répartition du trafic) et les objectifs/métriques configurés. La description du test n'est incluse dans la sortie JSON brute que lorsque --json est transmis.

remoteconfig:experiments:delete \
EXPERIMENT_ID

Supprime le test Remote Config spécifié.

La CLI affiche une invite de confirmation avant d'effectuer une action et n'est pas compatible avec l'option -f ou --force. En mode non interactif, la confirmation est définie par défaut sur "non" et la commande se ferme sans supprimer le test.

remoteconfig:rollouts:list

Répertoriez tous les déploiements Remote Config dans le projet Firebase actif.

Cette commande accepte les options facultatives suivantes :

  • --filter EXPRESSION
    Spécifiez l'expression pour filtrer les déploiements.
  • --pageSize NUMBER
    Spécifiez le nombre de déploiements à renvoyer par page. Si aucune valeur n'est spécifiée, la valeur par défaut est 10.
  • --pageToken TOKEN
    Spécifiez le décalage de départ de la liste.
remoteconfig:rollouts:get \
ROLLOUT_ID
Récupérez les détails du déploiement Remote Config spécifié.
remoteconfig:rollouts:delete \
ROLLOUT_ID

Supprime le déploiement Remote Config spécifié.

La CLI affiche une invite de confirmation avant d'effectuer une action et n'est pas compatible avec l'option -f ou --force. (En mode non interactif, la confirmation est définie par défaut sur "non" et la commande se ferme sans supprimer le déploiement.)

Commandes SQL 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 SQL Connect.

Commande Description
dataconnect:services:list Répertoriez tous les services SQL Connect déployés dans le projet Firebase actif.
dataconnect:sql:diff

Affichez les différences entre un schéma SQL Connect local et votre schéma de base de données Cloud SQL.

Cette commande accepte les options facultatives suivantes :

  • --service SERVICE_ID
    Spécifiez l'ID de service SQL Connect. En cas d'omission, utilise le service unique configuré dans firebase.json. Si plusieurs services sont configurés, la commande échoue, sauf si vous spécifiez --service et, si nécessaire, --location.
  • --location LOCATION
    Spécifiez l'emplacement du service SQL Connect. Nécessaire uniquement si l'ID de service est utilisé dans plusieurs emplacements.
dataconnect:sql:migrate

Migrez le schéma de votre base de données Cloud SQL pour qu'il corresponde à votre schéma SQL Connect local.

Cette commande accepte les options facultatives suivantes :

  • --service SERVICE_ID
    Spécifiez l'ID de service SQL Connect. Si cette option est omise, utilise le service unique configuré dans firebase.json (si plusieurs services sont configurés, la commande échoue, sauf si vous spécifiez --service et, si nécessaire, --location).
  • --location LOCATION
    Spécifiez l'emplacement du service SQL Connect. Nécessaire uniquement si l'ID de service est utilisé dans plusieurs emplacements.

En mode interactif, la CLI affiche une invite de confirmation avant d'effectuer une action. En mode non interactif, les migrations non destructives s'exécutent automatiquement, tandis que les modifications destructives sont annulées, sauf si vous transmettez -f ou --force (ce qui ignore également les invites de confirmation en mode interactif).

dataconnect:sql:grant \
--role SQL_ROLE \
--email EMAIL_ADDRESS

Attribuez le SQL_ROLE spécifié (owner, writer ou reader) au EMAIL_ADDRESS spécifié de l'utilisateur ou du compte de service.

Cette commande accepte les options facultatives suivantes :

  • --service SERVICE_ID
    Spécifiez l'ID de service SQL Connect. Si cette option est omise, utilise le service unique configuré dans firebase.json (si plusieurs services sont configurés, la commande échoue, sauf si vous spécifiez --service et, si nécessaire, --location).
  • --location LOCATION
    Spécifiez l'emplacement du service SQL Connect. Nécessaire uniquement si l'ID de service est utilisé dans plusieurs emplacements.
dataconnect:sdk:generate

Générez des SDK typés pour vos connecteurs SQL Connect.

Cette commande accepte les options facultatives suivantes :

  • --service SERVICE_ID
    Spécifiez l'ID de service SQL Connect. Si ce paramètre est omis, des SDK sont générés pour tous les services configurés.
  • --location LOCATION
    Spécifiez l'emplacement du service SQL Connect. Nécessaire uniquement si l'ID de service est utilisé dans plusieurs emplacements.
  • --watch
    Surveillez les modifications apportées aux fichiers GQL de votre connecteur et regénérez vos SDK lorsque des mises à jour se produisent.