Mit der Firebase-Befehlszeile können Sie Firebase-Produkte und ‑Dienste über die Befehlszeile verwalten und konfigurieren.
Die Befehlszeile bietet Befehle, mit denen eine Vielzahl von Data Connect-Aufgaben ausgeführt werden kann, z. B. das Erstellen eines neuen Data Connect-Projekts, das Initialisieren eines entsprechenden lokalen Arbeitsverzeichnisses, das Einrichten des Data Connect-Emulators, das Auflisten von Data Connect-Ressourcen und das Generieren von Client-SDKs.
Befehle zur Einrichtung
Data Connect zu einem Firebase-Projekt hinzufügen
firebase init
Verwenden Sie firebase init
, um eine neue lokale Projektkonfiguration einzurichten. Mit diesem Workflow werden Firebase-Konfigurationsdateien in Ihrem Verzeichnis erstellt oder aktualisiert.
firebase init
Der firebase init
-Vorgang führt Sie durch die Einrichtung eines Dienstes und einer Datenbank sowie optional durch die Installation des Data Connect-Emulators und die Konfiguration generierter SDKs.
Dienst- und Datenbankeinrichtung
Wenn Sie dataconnect
für die Produkteinrichtung auswählen, werden Sie in der Befehlszeile aufgefordert, einen neuen Dienstnamen und Speicherort anzugeben und zu entscheiden, ob Sie eine vorhandene Cloud SQL for PostgreSQL-Instanz verknüpfen oder eine neue Instanz erstellen möchten.
Wenn eine vorhandene Instanz verknüpft ist, prüft die Befehlszeile, ob die Einstellungen kompatibel sind, z. B. die IAM-Authentifizierung und öffentliche IP-Adressen.
Local Emulator Suite-Einrichtung
Über die Befehlszeile können Sie Emulatoren einrichten, einschließlich des Data Connect-Emulators.
Data Connect-Emulatorbefehle
Data Connect-Emulator starten
emulators:start/exec
firebase emulators:start/exec
Verwenden Sie die Local Emulator Suite-Version des Data Connect-Emulators im interaktiven Modus mit start
oder im scriptgesteuerten, nicht interaktiven Modus mit exec
.
Lokale PostgreSQL-Daten exportieren und importieren
Zur Unterstützung des lokalen Prototypings und Testens sowie der kontinuierlichen Integration können Sie die in einer lokalen Datenbankinstanz gespeicherten Daten exportieren und zwischen Entwicklungsiterationen und Testläufen importieren.
Exporte werden als Snapshots Ihrer lokalen PostgreSQL-Datenbank gespeichert.
Data Connect bietet drei Möglichkeiten zum Exportieren/Importieren:
- Automatischer Export/Import, der in
firebase.json
konfiguriert ist, um Snapshot-Sicherungen beim Starten und Beenden des Emulators bereitzustellen - Manueller Export/Import über die Befehlszeile
- Manueller Export/Import über die VS Code-Erweiterungsoberfläche
Automatischer Export und Import in firebase.json
konfiguriert
Wenn Sie Daten zwischen Entwicklungssitzungen sichern möchten, geben Sie während der firebase init
-Sequenz einen Speicherort für die automatische Sicherung an. Dieser Standort ist in Ihrem firebase.json
im Feld emulators.dataconnect.dataDir
gespeichert. Alle von Ihnen vorgenommenen Datenänderungen werden zwischen den Emulatorläufen automatisch hier gespeichert. Das ist nützlich bei lokalen Tests und explorativen Datenanalysen.
Manueller Export: emulators:export
und emulators:start/exec --import
Führen Sie während der Ausführung des Data Connect-Emulators in einem separaten Terminal den Befehl firebase emulators:export
aus, um einen Snapshot Ihrer Daten zu speichern.
Anschließend können Sie den Emulator mit dem Flag --import
aus diesem Snapshot starten.
# Export data from local emulator from a separate terminal
firebase emulators:export --only dataconnect <export_directory>
# Import data from local directory, here using emulators:exec
firebase emulators:exec ./<your-test-script>.sh --only dataconnect --import <import_directory>
Manueller Export/Import: VS Code-Erweiterung
Wenn der Emulator ausgeführt wird, können Sie in der Benutzeroberfläche der VS Code-Erweiterung mit der Schaltfläche Emulatordaten exportieren den aktuellen Datenbankinhalt exportieren. Der Standardexportort ist das Verzeichnis exportedData
im Stammverzeichnis Ihres Projektverzeichnisses.
Sie können diese Daten wie im vorherigen Abschnitt beschrieben über die Befehlszeile importieren. Sie können diese Daten auch importieren, bevor Sie den Emulator über VS Code starten. Klicken Sie dazu auf den Link Emulator konfigurieren und legen Sie den Importpfad fest.
Befehle zur Schema- und Connector-Verwaltung
Dieser Abschnitt enthält Referenzinformationen zur Befehlszeile für Befehle, mit denen Sie Schemas und Connectors verwalten.
Anwendungsfälle und empfohlene Praktiken im Zusammenhang mit diesen Befehlen finden Sie im Leitfaden zur Schema- und Connector-Verwaltung.
Schema- und Connector-Ressourcen bereitstellen
bereitstellen
firebase deploy
Mit diesem Befehl werden Ressourcen für Data Connect-Dienste bereitgestellt, die in firebase.json indexiert sind. Falls erforderlich, wird eine Schemamigration durchgeführt.
Befehl | Beschreibung | |
---|---|---|
firebase deploy |
Flag | Beschreibung |
–-only dataconnect |
Sie können Schemas und Connectors für alle Data Connect-Dienste für dieses Projekt bereitstellen, aber keine anderen Firebase-Produktressourcen. | |
–-only dataconnect:serviceId |
Schema und Connectors für den angegebenen Data Connect-Dienst bereitstellen | |
–-only dataconnect:serviceId:connectorId |
Einen einzelnen Connector für den angegebenen Data Connect-Dienst bereitstellen | |
–-only dataconnect:serviceId:schema |
Binden Sie das Schema für den angegebenen Data Connect-Dienst ein. |
Mit den –-only
-Flags können Sie durch Kommas getrennte Werte übergeben, um eine beliebige Teilmenge von Ressourcen bereitzustellen.
firebase deploy --only dataconnect:service1:schema,dataconnect:service2
Data Connect-Dienste, -Schemas und -Connectors auflisten
dataconnect:services:list
firebase dataconnect:services:list
Dieser Befehl gibt grundlegende Informationen zu den Diensten, Schemas und Verbindungen aus, die in einem Projekt bereitgestellt werden.
SQL-Schemas vergleichen und migrieren
dataconnect:sql:diff
firebase dataconnect:sql:diff
Mit diesem Befehl wird das lokale Schema für einen Dienst mit dem aktuellen Schema der entsprechenden Cloud SQL-Datenbank verglichen. Es werden die Befehle ausgegeben, die zum Migrieren der Datenbank in das neue Schema ausgeführt würden.
Befehl | Beschreibung | |
---|---|---|
firebase dataconnect:sql:diff |
Flag/Parameter | Beschreibung |
serviceId |
Geben Sie den Dienst an. Wird dieser Parameter weggelassen, wird die Differenz für alle Dienste in firebase.json ausgegeben. |
dataconnect:sql:migrate
firebase dataconnect:sql:migrate
Mit diesem Befehl werden lokale Schemaänderungen auf die Cloud SQL-Datenbank eines Dienstes angewendet.
Wenn Sie ein neues lokales Data Connect-Projekt mit der Standarddataconnect.yaml
-Datei einrichten, werden Sie vom Befehl dataconect:sql:migrate
aufgefordert, alle erforderlichen Änderungen vorzunehmen und dann alle optionalen Änderungen, bevor die Änderungen ausgeführt werden. Sie können dieses Verhalten ändern, damit optionale Änderungen immer ein- oder ignoriert werden. Aktualisieren Sie dazu Ihre dataconnect.yaml
-Konfiguration, wie unter Schema im strengen oder kompatiblen Modus migrieren beschrieben.
In interaktiven Umgebungen werden in der Befehlszeile jede SQL-Anweisung für die Migration (und ob sie zerstörerisch ist) angezeigt und Sie werden aufgefordert, die gewünschten Änderungen anzuwenden.
Wenn Sie das Flag --force
übergeben, entspricht das der Annahme aller Prompts.
In nicht interaktiven Umgebungen:
- Ohne
--force
werden nur zerstörungsfreie Änderungen vorgenommen. Wenn es schädliche Änderungen gibt, wird die Befehlszeile abgebrochen und es werden keine Änderungen vorgenommen. - mit
--force
werden alle Änderungen vorgenommen. Wenn dies zerstörerische Änderungen umfasst, werden sie gedruckt und Sie werden gefragt, ob Sie fortfahren möchten, es sei denn, das Flag--force
ist angegeben.
Befehl | Beschreibung | |
---|---|---|
firebase dataconnect:sql:migrate |
Flag | Beschreibung |
serviceId |
Migrieren Sie die Datenbank für den angegebenen Dienst. Die serviceId wird abgeleitet, wenn Ihr Projekt nur einen Dienst hat. | |
–-force |
Prompts automatisch akzeptieren |
Wie bei anderen --only
-Flags können Sie mehrere Dienste durch Kommas getrennt angeben.
Schema im strengen oder kompatiblen Modus migrieren
Für Data Connect-Schemamigrationen gibt es zwei verschiedene Schemaüberprüfungsmodi: streng und kompatibel. Bei der Validierung im strengen Modus muss das Datenbankschema genau mit dem Anwendungsschema übereinstimmen, bevor das Anwendungsschema bereitgestellt werden kann. Für die Validierung im kompatiblen Modus muss das Datenbankschema kompatibel mit dem Anwendungsschema sein. Das bedeutet, dass Elemente in Ihrer Datenbank, die nicht vom Anwendungsschema verwendet werden, unverändert bleiben.
Diese Schemavalidierungsmodi und Best Practices für die Schemamigration werden im Leitfaden zum Verwalten von Schemas und Verbindungen behandelt.
Der Validierungsmodus wird mit dem Schlüssel schemaValidation
in der Datei dataconnect.yaml
definiert. Wenn schemaValidation
nicht angegeben ist, wendet die Befehlszeile kompatible Änderungen an und fordert Sie auf, bevor Sie strenge Änderungen ausführen. Weitere Informationen finden Sie in der Referenz zur Konfiguration.
SDK-Befehle
SDKs generieren
dataconnect:sdk:generate
firebase dataconnect:sdk:generate
Mit diesem Befehl werden die in connector.yaml deklarierten typisierten SDKs generiert.
Weitere Informationen finden Sie in den Anleitungen für die Verwendung der Web-SDKs, Android-SDKs und iOS-SDKs.
Befehl | Beschreibung | |
---|---|---|
firebase dataconnect:sdk:generate |
Flag | Beschreibung |
–-watch |
Der Prozess wird fortgesetzt und es werden neue SDKs generiert, sobald Sie Änderungen an Ihren Schema- und Connector-GQL-Dateien speichern. Wenn die Generierung fehlschlägt, werden Fehler auf stdout ausgegeben, der generierte Code wird nicht geändert und der Befehl wird fortgesetzt. |
|
–-only connectorId:platform |
Generieren Sie nur SDKs für eine einzelne Plattform und einen einzelnen Connector. |
Mit den –only
-Flags können Sie kommagetrennte Werte übergeben.
firebase dataconnect:sdk:generate –-only connector1, connector1:kotlin
Cloud SQL-Verwaltungsbefehle
SQL-Rollen für Cloud SQL gewähren
dataconnect:sql:grant
firebase dataconnect:sql:grant
Data Connect wird auf Ihrer eigenen PostgreSQL-Instanz ausgeführt, die auf Cloud SQL gehostet wird. In einigen Fällen möchten Sie möglicherweise direkt auf Ihre Datenbank zugreifen, um die von Ihren Data Connect-Apps generierten Daten abzufragen oder zu aktualisieren. Dazu müssen Sie dem erforderlichen Nutzer oder Dienstkonto eine der in diesem Abschnitt definierten Rollen zuweisen.
Weitere Informationen zu den gewährten Rollen finden Sie unter PostgreSQL-Nutzerrollen.
Rolle | SQL-Rolle | Berechtigungen | Nutzung | Zu gewährender Betrag |
---|---|---|---|---|
reader | firebasereader_<db_name>_<schema_name> |
Lesezugriff auf die Datenbank. Kann SELECT -Vorgänge auf allen Tabellen innerhalb des angegebenen Schemas ausführen. |
Ideal für Nutzer oder Dienste, für die Daten abgerufen, aber nicht geändert werden sollen. | Ja |
Autor | firebasewriter_<db_name>_<schema_name> |
Lese- und Schreibzugriff auf die Datenbank. Kann SELECT -, INSERT -, UPDATE -, DELETE - und TRUNCATE -Vorgänge auf alle Tabellen im Schema ausführen. |
Geeignet für Nutzer oder Dienste, die Daten in der Datenbank ändern müssen. | Ja |
Inhaber | firebaseowner_<db_name>_<schema_name> |
Schemainhaber. Hat alle Berechtigungen für alle Tabellen und Sequenzen im Schema. |
Diese Rolle gewährt in Kombination mit der IAM-Rolle roles/cloudsql.client die Berechtigung zur Migration der Datenbank. Beispiel: Beim Aufrufen von firebase dataconnect:sql:migrate . |
Ja |
Superuser | cloudsqlsuperuser |
Integrierte Superuser-Rolle mit vollen Berechtigungen für die Datenbank. Zusätzlich zu den Inhaberberechtigungen kann er Schemas erstellen, Schemas löschen, Erweiterungen installieren und andere administrative Aufgaben ausführen. In der Befehlszeile kann man sich als „firebasesuperuser“ anmelden, um darauf zuzugreifen. |
Erforderlich zum Installieren von Erweiterungen, Erstellen des ursprünglichen Schemas und Gewähren einer der zuweisbaren SQL-Rollen für andere Nutzer. Wenn ein Nutzer, der kein Administrator ist, Superuser-Berechtigungen benötigt, schlägt die Migration fehl und der Nutzer wird aufgefordert, den Datenbankadministrator (d.h. einen Nutzer mit roles/cloudsql.admin ) zu bitten, die SQL-Befehle mit Berechtigungen auszuführen. |
Wird Nutzern mit roles/cloudsql.admin gewährt und kann nicht direkt über die Firebase-Befehlszeile gewährt werden |
Befehl | Beschreibung | |
---|---|---|
firebase dataconnect:sql:grant |
Flag/Parameter | Beschreibung |
-R, --role Rolle |
Die zu gewährende SQL-Rolle: „Inhaber“, „Autor“ oder „Leser“. | |
-E, --email email_address |
E-Mail-Adresse eines Nutzers oder Dienstkontos, dem die Rolle zugewiesen werden soll. |
Globale Optionen
Die folgenden globalen Optionen gelten für alle Befehle:
--json
wandelt die CLI-Ausgabe in JSON um, damit sie von anderen Tools geparst werden kann.--noninteractive
und--interactive
überschreiben bei Bedarf die automatische Erkennung von Umgebungen ohne TTY.