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.
- Linux, macOS oder Windows
- Visual Studio Code
Verbindung mit Ihrem Firebase-Projekt herstellen
- Erstellen Sie ein Firebase-Projekt, falls noch nicht geschehen.
- Klicken Sie in der Firebase Console auf Projekt hinzufügen und folgen Sie der Anleitung auf dem Bildschirm.
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.
Rufe in der Firebase-Konsole den Bereich Data Connect auf und folge dem Workflow zur Produkteinrichtung.
Wählen Sie einen Speicherort für Ihre Cloud SQL for PostgreSQL-Datenbank aus.
Notieren Sie sich zur späteren Bestätigung die Projekt-, Dienst- und Datenbanknamen und IDs.
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:
- Erstellen Sie ein neues Verzeichnis für Ihr lokales Projekt.
- Öffnen Sie VS Code im neuen Verzeichnis.
Laden Sie die als VSIX-Paket gebündelte Erweiterung von Firebase Storage herunter.
Wählen Sie in VS Code im Menü View (Ansicht) die Option Extensions (Erweiterungen) aus.
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:
- Sie müssen angemeldet sein.
- Klicken Sie auf die Schaltfläche Firebase init ausführen.
- Aufforderungen finden Sie auf dem Tab Terminal im unteren Bereich von VS Code.
- Wählen Sie „Data Connect“ als Funktion aus, die in diesem Verzeichnis verwendet werden soll.
- 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.
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.
- 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.
- 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
- Schemaänderungen mit
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:
- Klicken Sie in
schema.gql
über der TypdeklarationUser
auf die Schaltfläche Daten hinzufügen.
- In der generierten Datei
User_insert.gql
hartcodieren Sie die Daten für die drei Felder. - Klicken Sie auf die Schaltfläche Ausführen (Produktion).
- Wiederholen Sie die vorherigen Schritte, um der Tabelle
Email
einen Eintrag hinzuzufügen. dieuid
Ihres Nutzers im FeldfromUid
, wie im generiertenEmail_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.
- macOS. Laden Sie Postgres.app herunter und installieren Sie es.
- Windows: Verwenden Sie das EDB-Installationsprogramm von der PostgreSQL-Downloadseite.
- Docker:Rufen Sie den Befehl
pgvector/pgvector:pg15
Bild, mit Unterstützung für PostgreSQL 15.x und Vektoren. - Linux: Wir empfehlen die Verwendung von Docker mit dem obigen Image. Sie können aber auch diese alternative Anleitung für gängige Distributionen befolgen.
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:
- Klicken Sie in VS Code im linken Bereich auf das Firebase-Symbol, um die Benutzeroberfläche der Firebase-VS Code-Erweiterung zu öffnen.
- Klicken Sie auf die Schaltfläche Mit lokalem PostgreSQL verbinden.