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
.
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 Connectoren 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 eingeschlossen 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 beibehalten 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 der Abruf von Daten, aber keine Änderung erforderlich ist. | 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.