Erste Schritte mit Firebase Data Connect

In dieser Anleitung erhalten Sie Informationen zu folgenden Themen:

  • Fügen Sie Firebase Data Connect Ihrem Firebase-Projekt hinzu.
  • Richten Sie eine Entwicklungsumgebung mit einer Visual Studio Code-Erweiterung ein, die mit einer Produktionsinstanz funktioniert.
  • Anschließend erfahren Sie, wie Sie:
    • Ein Schema für eine E-Mail-App erstellen und für die Produktion bereitstellen
    • Definieren Sie Abfragen und Mutationen für Ihr Schema.
    • Stellen Sie das endgültige Schema, die Abfrage und die Daten in der Produktion bereit.

Vorbereitung

Für diese Kurzanleitung benötigen Sie Folgendes.

Verbindung mit Ihrem Firebase-Projekt herstellen

  1. Erstellen Sie ein Firebase-Projekt, falls noch nicht geschehen.
    1. Klicken Sie in der Firebase Console auf Projekt hinzufügen und folgen Sie der Anleitung auf dem Bildschirm.
  2. Führen Sie für Ihr Projekt ein Upgrade auf den Tarif „Blaze“ durch. So können Sie eine Cloud SQL for PostgreSQL-Instanz erstellen.

  3. Rufe in der Firebase-Konsole den Bereich Data Connect auf und folge dem Workflow zur Produkteinrichtung.

  4. Wählen Sie einen Speicherort für Ihre Cloud SQL for PostgreSQL-Datenbank aus.

  5. Notieren Sie sich zur späteren Bestätigung die Projekt-, Dienst- und Datenbanknamen und IDs.

  6. Folgen Sie der restlichen Einrichtung und klicken Sie dann auf Fertig.

Entwicklungsumgebung auswählen und einrichten

Data Connect unterstützt zwei Entwicklungsumgebungen für das Prototyping:

  • Wenn Sie Kotlin für Android, iOS oder für das Web sind, können Sie VS Code-Entwicklung, um Schemas und Vorgänge lokal zu entwerfen und zu testen, eine Verbindung zu Ihrer Cloud SQL for PostgreSQL-Instanz herstellen.
  • Als Webentwickler können Sie mit der IDX-Entwicklung in einem IDX-Arbeitsbereich mit einer vorkonfigurierten IDX-Vorlage mit PostgreSQL, VS Code-Erweiterung mit Data Connect-Emulator und Kurzanleitungscode die für Sie eingerichtet werden. Weitere Informationen finden Sie auf der Website von Project IDX.

In dieser Kurzanleitung liegt der Schwerpunkt auf dem Entwicklungsablauf für VS Code-Erweiterungen. So fahren Sie fort:

  1. Erstellen Sie ein neues Verzeichnis für Ihr lokales Projekt.
  2. Öffnen Sie VS Code im neuen Verzeichnis.
  3. Laden Sie die als VSIX-Paket gebündelte Erweiterung von Firebase Storage herunter.

  4. Wählen Sie in VS Code im Menü View (Ansicht) die Option Extensions (Erweiterungen) aus.

  5. Klicken Sie in der Titelleiste des Bereichs Erweiterungen auf das Dreipunkt-Menü more_horiz und folgen Sie der Anleitung unter Über VSIX installieren….

Optional können Sie mit dem Data Connect-Emulator eine lokale PostgreSQL-Datenbank für die lokale Entwicklung installieren. Diese Einrichtung wird am Ende dieser Kurzanleitung.

Lokales Projekt einrichten

Installieren Sie die Befehlszeile gemäß der normalen Anleitung. Wenn Sie npm verwenden bereits installiert ist, führen Sie den folgenden Befehl aus:

npm install -g firebase-tools

Projektverzeichnis einrichten

Um Ihr lokales Projekt einzurichten, müssen Sie das Projektverzeichnis initialisieren.

Klicken Sie im linken Bereich von VS Code auf das Firebase-Symbol, um die Benutzeroberfläche der Firebase-VS Code-Erweiterung zu öffnen.

In der Benutzeroberfläche der Firebase-Erweiterung:

  1. Sie müssen angemeldet sein.
  2. Klicken Sie auf die Schaltfläche Firebase init ausführen.
  3. Aufforderungen finden Sie auf dem Tab Terminal im unteren Bereich von VS Code.
  4. Wählen Sie „Data Connect“ als Funktion aus, die in diesem Verzeichnis verwendet werden soll.
  5. Wenn Sie dazu aufgefordert werden, geben Sie die Projekt-, Dienst- und Datenbank-IDs der Data Connect-Projekt, das Sie zuvor in der Console erstellt haben.

Schema erstellen

Beginnen Sie im Firebase-Projektverzeichnis in der Datei /dataconnect/schema/schema.gql, ein GraphQL-Schema zu definieren, das Nutzer und E-Mail-Adressen enthält.

Nutzer

In Data Connect werden GraphQL-Felder Spalten zugeordnet. Die Nutzer haben eine uid, eine name und die E-Mail-Adresse address. Data Connect erkennt mehrere primitive Datentypen: String und Date.

Kopieren Sie das folgende Snippet oder entfernen Sie die Kommentarzeichen in den entsprechenden Zeilen in der Datei.

# File `/dataconnect/schema/schema.gql`

type User @table(key: "uid") {
   uid: String!
   name: String!
   address: String!
}

Standardmäßig fügt Firebase Data Connect einen UUID-Schlüssel vom Typ id hinzu, wenn keiner der folgenden Werte ist: bereitgestellt. In diesem Fall soll jedoch mein uid der Primärschlüssel sein, also die Sie mit der @table(key: "uid")-Anweisung tun können.

E-Mail

Jetzt, da Sie Nutzer haben, können Sie E-Mails modellieren. Hier können Sie die üblichen Felder (oder Spalten) für E-Mail-Daten hinzufügen. Diesmal fügen wir keinen Primärschlüssel hinzu, da Sie ihn mit Data Connect verwalten können.

# File `/dataconnect/schema/schema.gql`

type Email @table {
   subject: String!
   sent: Date!
   text: String!
   from: User!
}

Das Feld from ist einem Typ von User zugeordnet. Data Connect versteht, dass es sich hierbei um eine Beziehung zwischen Email handelt und User und werden diese Beziehung für dich verwalten.

Schema in der Produktionsumgebung bereitstellen

Wenn Sie die Firebase-VS Code-Erweiterung für die Arbeit mit Ihrer Produktionsdatenbank verwenden, müssen Sie Ihr Schema bereitstellen, bevor Sie fortfahren können. Nachher das Schema in der Produktionsdatenbank bereitstellen, sollten Sie das Schema in der Konsole.

  1. Sie können die Firebase-VS Code-Erweiterung für die Bereitstellung verwenden.
    • Klicken Sie in der Benutzeroberfläche der Erweiterung unter dem Steuerfeld Firebase Data Connect auf Bereitstellen.
  2. Möglicherweise müssen Sie Schemaänderungen überprüfen und potenziell destruktive Änderungen genehmigen Änderungen vornehmen. Sie werden aufgefordert, Folgendes zu tun:
    • Schemaänderungen mit firebase dataconnect:sql:diff überprüfen
    • Wenn Sie mit den Änderungen zufrieden sind, wenden Sie sie wie folgt an: firebase dataconnect:sql:migrate

Tabellen Daten hinzufügen

Im VS-Code-Editorbereich sehen Sie CodeLens-Schaltflächen über dem GraphQL-Typen in /dataconnect/schema/schema.gql. Da Sie Ihr Schema in der Produktion bereitgestellt haben, können Sie mit den Schaltflächen Daten hinzufügen und Ausführen (Produktion) Daten in Ihrer Datenbank im Backend hinzufügen.

So fügen Sie den Tabellen User und Email Einträge hinzu:

  1. Klicken Sie in schema.gql über der Typdeklaration User auf die Schaltfläche Daten hinzufügen.
    Code Lens-Schaltfläche „Daten hinzufügen“ für Firebase Data Connect
  2. In der generierten Datei User_insert.gql hartcodieren Sie die Daten für die drei Felder.
  3. Klicken Sie auf die Schaltfläche Ausführen (Produktion).
    Code Lens-Schaltfläche „Ausführen“ für Firebase Data Connect
  4. Wiederholen Sie die vorherigen Schritte, um der Tabelle Email einen Eintrag hinzuzufügen. die uid Ihres Nutzers im Feld fromUid, wie im generierten Email_insert.

Abfrage definieren

Jetzt kommen wir zum Teil, den Abfragen. Als Entwickler sind Sie daran gewöhnt, SQL anstelle von GraphQL-Abfragen. Das kann sich also anfangs etwas anders anfühlen. GraphQL ist jedoch wesentlich präziser und typsicherer als Roh-SQL. Unsere VS Code-Erweiterung erleichtert die Entwicklung.

Beginnen Sie mit der Bearbeitung der Datei /dataconnect/connector/queries.gql. Wenn Sie alle E-Mails abrufen möchten, verwenden Sie eine Abfrage wie diese.

# File `/dataconnect/connector/queries.gql`

query ListEmails @auth(level: NO_ACCESS) {
  emails {
    id, subject, text, sent
    from {
      name
    }
  }
}

Führen Sie die Abfrage mit der CodeLens-Schaltfläche in der Nähe aus.

Eine wirklich interessante Funktion ist die Möglichkeit, Beziehungen zu erstellen. Da eine E-Mail ein from-Feld enthält, das auf einen Nutzer verweist, können Sie das Feld verschachteln und Informationen zum Nutzer abrufen.

Schema und Abfrage in der Produktion bereitstellen

Sie haben eine Entwicklungsiteration durchlaufen. Jetzt können Sie Ihre Schema, Daten und Abfragen an den Server senden, Erweiterungs-UI oder der Firebase-Befehlszeile, genau wie bei Ihrem Schema. (#deploy-schema).

Wenn Sie die Erweiterung „Firebase VS Code“ zum Bereitstellen verwenden, klicken Sie auf Bereitstellen. Schaltfläche.

Nach der Bereitstellung sollten Sie die Vorgänge in der Console ansehen und ausführen können . Ihr Data Connect-Dienst ist dann bereit, Vorgänge von Kunden zu verarbeiten. Die Cloud SQL for PostgreSQL-Instanz wird mit dem endgültig bereitgestellten generierten Schema und den Daten aktualisiert.

(Optional) PostgreSQL lokal installieren

Wenn Sie PostgreSQL lokal installieren und in den Emulator einbinden, können Sie den Prototyp in einer vollständig lokalen Entwicklungsumgebung erstellen.

Sie können eine neue PostgreSQL-Instanz installieren oder eine vorhandene verwenden.

PostgreSQL installieren

Installieren Sie PostgreSQL 15.x gemäß der Anleitung für Ihre Plattform.

Notieren Sie sich die Ausgabe von Hostname, Port, Nutzername und Passwort sowie zugehörige Parameter. der Installationsabfolge.

Damit der Emulator eine Verbindung zu Ihrer PostgreSQL-Instanz herstellen kann, benötigt er Folgendes:

  • Diese Konfigurationsparameter
  • Der Datenbankname aus Ihrer dataconnect.yaml und ein entsprechend benannter die in Ihrer lokalen Instanz initialisiert wurde.

Lokale PostgreSQL-Instanz verwenden

Sie können eine vorhandene lokale PostgreSQL-Instanz verwenden, indem Sie die Emulator-Einstellungen für Data Connect.

firebase setup:emulators:dataconnect

Geben Sie auf Aufforderung den PostgreSQL-Verbindungsstring in diesem Format ein: postgresql://postgresusername:postgrespassword@localhost:5432/postgresdatabase?sslmode=disable.

Weitere Informationen zum Verbindungsstring finden Sie in der PostgreSQL-Dokumentation

Verbindung zur lokalen PostgreSQL-Instanz herstellen

So stellen Sie eine Verbindung zu Ihrer lokalen Datenbank her:

  1. Klicken Sie in VS Code im linken Bereich auf das Firebase-Symbol, um die Benutzeroberfläche der Firebase-VS Code-Erweiterung zu öffnen.
  2. Klicken Sie auf die Schaltfläche Mit lokalem PostgreSQL verbinden.

Nächste Schritte