Documentation de référence sur les commandes de la CLI Firebase pour Data Connect

La CLI Firebase est un outil qui vous permet de gérer et de configurer les produits et services Firebase à partir de la ligne de commande.

La CLI fournit des commandes permettant d'effectuer diverses tâches Data Connect, comme créer un projet Data Connect, initialiser un répertoire de travail local correspondant, configurer l'émulateur Data Connect, lister les ressources Data Connect, générer des SDK client, etc.

Commandes de configuration

Ajouter Data Connect à un projet Firebase

firebase init

Utilisez firebase init pour configurer une nouvelle configuration de projet local. Ce workflow crée ou met à jour des fichiers de configuration Firebase dans votre répertoire.

firebase init

Le flux firebase init vous guide dans la configuration d'un service et d'une base de données, et éventuellement dans l'installation de l'émulateur Data Connect et la configuration des SDK générés.

Configuration du service et de la base de données

Si vous sélectionnez dataconnect pour la configuration du produit, la CLI vous invite à indiquer un nouveau nom et un nouvel emplacement de service, et à associer une instance Cloud SQL pour PostgreSQL existante ou à en créer une.

Si une instance existante est associée, la CLI recherche des paramètres compatibles, tels que l'authentification IAM et les adresses IP publiques.

Configuration de Local Emulator Suite

Le flux de la CLI propose de configurer des émulateurs, y compris l'émulateur Data Connect.

Commandes de l'émulateur Data Connect

Démarrer l'émulateur Data Connect

emulators:start/exec

firebase emulators:start/exec

Utilisez la version Local Emulator Suite de l'émulateur Data Connect en mode interactif avec start ou en mode non interactif basé sur un script avec exec.

Commandes de gestion des schémas et des connecteurs

Cette section contient des informations de référence sur la CLI pour les commandes que vous utilisez pour gérer les schémas et les connecteurs.

Pour connaître les cas d'utilisation et les bonnes pratiques à suivre concernant ces commandes, consultez le guide de gestion des schémas et des connecteurs.

Déployer des ressources de schéma et de connecteur

déployer

firebase deploy

Cette commande déploie des ressources pour les services Data Connect indexés dans firebase.json. Une migration de schéma est effectuée si nécessaire.

Commande Description

"firebase deploy"

Option Description

–-only dataconnect

Déployez des schémas et des connecteurs pour tous les services Data Connect de ce projet, mais ne déployez pas d'autres ressources de produits Firebase.

–-only dataconnect:serviceId

Déployez le schéma et les connecteurs pour le service Data Connect spécifié.

–-only dataconnect:serviceId:connectorId

Déployez un seul connecteur pour le service Data Connect spécifié.

–-only dataconnect:serviceId:schema

Déployez le schéma pour le service Data Connect spécifié.

Avec les indicateurs –-only, vous pouvez transmettre des valeurs séparées par des virgules pour déployer n'importe quel sous-ensemble de ressources.

firebase deploy --only dataconnect:service1:schema,dataconnect:service2

Répertorier les services, schémas et connecteurs Data Connect

dataconnect:services:list

firebase dataconnect:services:list

Cette commande affiche des informations de base sur les services, les schémas et les connecteurs déployés sur un projet.

Comparer et migrer des schémas SQL

dataconnect:sql:diff

firebase dataconnect:sql:diff

Cette commande compare le schéma local d'un service au schéma actuel de la base de données Cloud SQL correspondante. Il affiche les commandes qui seraient exécutées pour migrer la base de données vers votre nouveau schéma.

Commande Description

firebase dataconnect:sql:diff

Indicateur/Paramètre Description

ID du service

Spécifiez le service. Si elle est omise, imprimez la différence pour tous les services dans firebase.json.

dataconnect:sql:migrate

firebase dataconnect:sql:migrate

Cette commande applique les modifications de schéma locales à la base de données Cloud SQL d'un service.

Lorsque vous configurez un nouveau projet Data Connect local avec le fichier dataconnect.yaml par défaut, le comportement de la commande dataconect:sql:migrate consiste à vous demander les modifications requises, puis les modifications facultatives, avant d'exécuter les modifications. Vous pouvez modifier ce comportement pour toujours inclure ou ignorer les modifications facultatives en mettant à jour votre configuration dataconnect.yaml, comme indiqué dans la section Migrer un schéma en mode strict ou compatible.

Dans les environnements interactifs, la CLI affiche chaque instruction SQL de migration (et si elle est destructive) et demande les modifications que vous souhaitez appliquer. Transmettre l'indicateur --force équivaut à accepter toutes les invites.

Dans les environnements non interactifs:

  • Sans --force, seules les modifications non destructives sont apportées. En cas de modifications destructives, la CLI s'arrête et aucune modification n'est apportée.
  • Avec --force, toutes les modifications sont effectuées. Si des modifications destructives sont incluses, elles sont imprimées et vous êtes invité à continuer, sauf si l'indicateur --force est fourni.
Commande Description

firebase dataconnect:sql:migrate

Option Description

ID du service

Migrez la base de données pour le service spécifié. Le serviceId est inféré si votre projet ne comporte qu'un seul service.

–-force

Accepter automatiquement les requêtes

Comme pour les autres indicateurs --only, vous pouvez fournir plusieurs services séparés par des virgules.

Migrer un schéma en mode strict ou compatible

Les migrations de schéma Data Connect comportent deux modes de validation de schéma différents: strict et compatible. La validation en mode strict exige que le schéma de la base de données corresponde exactement au schéma de l'application avant que le schéma de l'application puisse être déployé. La validation du mode compatible nécessite que le schéma de la base de données soit compatible avec le schéma de l'application. Cela signifie que les éléments de votre base de données qui ne sont pas utilisés par votre schéma d'application ne sont pas modifiés.

Ces modes de validation de schéma et les bonnes pratiques de migration de schéma sont décrits dans le guide de gestion des schémas et des connecteurs.

Le mode de validation est défini à l'aide de la clé schemaValidation dans votre fichier dataconnect.yaml. Si schemaValidation n'est pas spécifié, la CLI applique les modifications compatibles et vous invite avant d'exécuter les modifications strictes. Consultez la documentation de référence sur la configuration.

Commandes du SDK

Générer des SDK

dataconnect:sdk:generate

firebase dataconnect:sdk:generate

Cette commande génère les SDK typés déclarés dans connector.yaml.

Consultez également les guides sur l'utilisation des SDK Web, des SDK Android et des SDK iOS.

Commande Description

firebase dataconnect:sdk:generate

Option Description

–-watch

Maint le processus en cours d'exécution et génère de nouveaux SDK chaque fois que vous enregistrez des modifications apportées à votre schéma et à vos fichiers GQL de connecteur.

Si la génération échoue, des erreurs sont imprimées sur la sortie standard, le code généré n'est pas modifié et la commande continue de s'exécuter.

–-only connectorId:platform

Ne générez des SDK que pour une seule plate-forme et un seul connecteur.

Avec les options –only, vous pouvez transmettre des valeurs séparées par une virgule.

firebase dataconnect:sdk:generate –-only connector1, connector1:kotlin

Commandes de gestion Cloud SQL

Accorder des rôles SQL pour Cloud SQL

dataconnect:sql:grant

firebase dataconnect:sql:grant

Data Connect fonctionne sur votre propre instance PostgreSQL hébergée sur Cloud SQL. Dans certains cas, vous pouvez accéder directement à votre base de données pour interroger ou mettre à jour les données générées par vos applications Data Connect. Pour ce faire, vous devez attribuer l'un des rôles définis dans cette section à l'utilisateur ou au compte de service requis.

Pour en savoir plus sur les rôles accordés, consultez la section Rôles utilisateur PostgreSQL.

Rôle Rôle SQL Autorisations Utilisation Accordable
lecteur firebasereader_<db_name>_<schema_name> Accès en lecture seule à la base de données.

 Peut effectuer des opérations SELECT sur toutes les tables du schéma spécifié.
Idéal pour les utilisateurs ou les services qui nécessitent la récupération de données, mais pas leur modification. Oui
écrivain firebasewriter_<db_name>_<schema_name> Accès en lecture et en écriture à la base de données.

 : peut effectuer des opérations SELECT, INSERT, UPDATE, DELETE et TRUNCATE sur toutes les tables du schéma.
Convient aux utilisateurs ou services qui doivent modifier les données de la base de données. Oui
owner firebaseowner_<db_name>_<schema_name> Propriétaire du schéma.

Possède tous les droits sur toutes les tables et séquences du schéma.
Ce rôle, associé au rôle IAM roles/cloudsql.client, permet d'effectuer la migration de la base de données.

Par exemple, lors de l'appel de firebase dataconnect:sql:migrate.
Oui
super-utilisateur cloudsqlsuperuser Rôle de super-utilisateur intégré avec des droits complets sur la base de données.

En plus des autorisations de propriétaire, il peut créer des schémas, en supprimer, installer des extensions et effectuer d'autres tâches administratives.

Accessible dans la CLI en se connectant en tant que "firebasesuperuser".
Obligatoire pour installer des extensions, créer le schéma initial et accorder l'un des rôles SQL pouvant être accordés à d'autres utilisateurs.

Si un utilisateur non administrateur a besoin de droits de super-utilisateur, la migration échoue et l'utilisateur est invité à demander à l'administrateur de la base de données (c'est-à-dire un utilisateur disposant de roles/cloudsql.admin) d'exécuter les commandes SQL privilégiées.
Accordé aux utilisateurs avec roles/cloudsql.admin et ne peut pas être accordé directement à partir de la CLI Firebase
Commande Description

firebase dataconnect:sql:grant

Indicateur/Paramètre Description

-R, --role role

Rôle SQL à attribuer: propriétaire, rédacteur ou lecteur.

-E, --email adresse_e-mail

Adresse e-mail d'un utilisateur ou d'un compte de service auquel attribuer le rôle.

Options globales

Les options globales suivantes s'appliquent à toutes les commandes:

  • --json convertit la sortie de la CLI au format JSON pour l'analyse par d'autres outils.
  • --noninteractive et --interactive remplacent, si nécessaire, la détection automatique des environnements autres que TTY.