In dieser Kurzanleitung erfahren Sie, wie Sie Firebase Data Connect lokal in Ihrer Anwendung erstellen, ohne eine Produktions-SQL-Instanz einzurichten.
- Fügen Sie Firebase Data Connect Ihrem Firebase-Projekt hinzu.
- Richten Sie eine Entwicklungsumgebung mit einer Visual Studio Code-Erweiterung ein, um mit einer lokalen Instanz zu arbeiten.
- Anschließend zeigen wir Ihnen, wie Sie:
- Schema für eine Film-App erstellen
- Abfragen und Mutationen definieren, die in Ihrer App verwendet werden
- Abfragen und Mutationen mit Beispieldaten in einem lokalen Emulator testen
- Stark typisierte SDKs generieren und in Ihrer App verwenden
- Stellen Sie das endgültige Schema, die Abfragen und die Daten in der Cloud bereit (optional, Blaze-Plan erforderlich).
Vorbereitung
Für diesen Schnellstart benötigen Sie Folgendes:
- Linux, macOS oder Windows
- Visual Studio Code
- Installieren Sie Node.js mit nvm-windows für Windows oder nvm für macOS oder Linux.
- Erstellen Sie ein Firebase-Projekt in der Firebase-Konsole, falls Sie dies noch nicht getan haben.
Entwicklungsumgebung einrichten
Sie benötigen Visual Studio Code, um das Schema zu verwalten und Abfragen zu definieren, die in Ihrer Anwendung verwendet werden. Ein stark typisiertes SDK wird automatisch für Sie generiert:
- Erstellen Sie ein neues Verzeichnis für Ihr lokales Projekt.
- Öffnen Sie VS Code im neuen Verzeichnis.
- Installieren Sie die Firebase Data Connect-Erweiterung aus dem Visual Studio Code Marketplace.
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 Data Connect-VS Code-Erweiterung zu öffnen:
- Klicken Sie auf die Schaltfläche Über Google anmelden.
- Klicken Sie auf die Schaltfläche Firebase-Projekt verknüpfen und wählen Sie das Projekt aus, das Sie zuvor in der Console erstellt haben.
- Klicken Sie auf die Schaltfläche firebase init ausführen.
Klicken Sie auf die Schaltfläche Emulatoren starten.
Schema erstellen
Beginnen Sie in Ihrem Firebase-Projektverzeichnis in der Datei /dataconnect/schema/schema.gql
mit der Definition eines GraphQL-Schemas für Filme.
Film
In Data Connect werden GraphQL-Felder Spalten zugeordnet. Der Film hat id
, title
, imageUrl
und genre
. Data Connect erkennt primitive Datentypen: String
und UUID
.
Kopieren Sie das folgende Snippet oder entfernen Sie die Kommentarzeichen in den entsprechenden Zeilen in der Datei.
# By default, a UUID id key will be created by default as primary key.
# If you want to specify a primary key, say title, which you can do through
# the @table(key: "title") directive
type Movie @table {
id: UUID! @default(expr: "uuidV4()")
title: String!
imageUrl: String!
genre: String
}
MovieMetadata
Kopieren Sie das folgende Snippet oder entfernen Sie die Kommentarzeichen in den entsprechenden Zeilen in der Datei.
# Movie - MovieMetadata is a one-to-one relationship
type MovieMetadata @table {
# This time, we omit adding a primary key because
# you can rely on Data Connect to manage it.
# @unique indicates a 1-1 relationship
movie: Movie! @unique
# movieId: UUID <- this is created by the above reference
rating: Float
releaseYear: Int
description: String
}
Beachten Sie, dass das Feld movie
dem Typ Movie
zugeordnet ist.
Data Connect ist sich bewusst, dass es sich um eine Beziehung zwischen Movie
und MovieMetadata
handelt, und verwaltet diese Beziehung für Sie.
Weitere Informationen zu Data Connect-Schemas in der Dokumentation
Tabellen Daten hinzufügen
Im VS Code-Editor werden CodeLens-Schaltflächen über den GraphQL-Typen in /dataconnect/schema/schema.gql
angezeigt. Mit den Schaltflächen Daten hinzufügen und Ausführen (Lokal) können Sie Ihrer lokalen Datenbank Daten hinzufügen.
So fügen Sie den Tabellen Movie
und MovieMetadata
Einträge hinzu:
- Klicken Sie in
schema.gql
über der TypdeklarationMovie
auf die Schaltfläche Daten hinzufügen.
- Codieren Sie in der generierten
Movie_insert.gql
-Datei Daten für die drei Felder. - Klicken Sie auf die Schaltfläche Ausführen (lokal).
- Wiederhole die vorherigen Schritte, um der Tabelle
MovieMetadata
einen Datensatz hinzuzufügen. Gib dazu dieid
deines Films in das FeldmovieId
ein, wie in der generiertenMovieMetadata_insert
-Mutation angegeben.
So prüfen Sie schnell, ob Daten hinzugefügt wurden:
- Klicken Sie in
schema.gql
über der Typdeklaration fürMovie
auf die Schaltfläche Daten lesen. - Klicken Sie in der resultierenden
Movie_read.gql
-Datei auf die Schaltfläche Ausführen (lokal), um die Abfrage auszuführen.
Weitere Informationen zu Data Connect-Mutationen in der Dokumentation
Abfrage definieren
Nun zum unterhaltsamen Teil: Lassen Sie uns die Abfragen definieren, die Sie in Ihrer Anwendung benötigen. Als Entwickler sind Sie es gewohnt, SQL-Abfragen anstelle von GraphQL-Abfragen zu schreiben. 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.
Bearbeiten Sie die Datei /dataconnect/connector/queries.gql
. Wenn Sie alle Filme abrufen möchten, verwenden Sie eine Abfrage wie diese.
# File `/dataconnect/connector/queries.gql`
# @auth() directives control who can call each operation.
# Anyone should be able to list all movies, so the auth level is set to PUBLIC
query ListMovies @auth(level: PUBLIC) {
movies {
id
title
imageUrl
genre
}
}
Führen Sie die Abfrage mit der CodeLens-Schaltfläche aus.
Eine wirklich spannende Funktion ist die Möglichkeit, die Beziehungen der Datenbank als Graph darzustellen. Da „MovieMetadata“ ein movie
-Feld enthält, das auf einen Film verweist, kannst du das Feld verschachteln und Informationen zu den Filminformationen zurückgeben. Fügen Sie der Abfrage „ListMovies“ den generierten Typ movieMetadata_on_movie
hinzu.
query ListMovies @auth(level: PUBLIC) {
movies {
id
title
imageUrl
genre
movieMetadata_on_movie {
rating
}
}
}
Weitere Informationen zu Data Connect-Abfragen finden Sie in der Dokumentation.
SDKs generieren und in Ihrer App verwenden
Klicken Sie im linken Bereich von VS Code auf das Firebase-Symbol, um die Benutzeroberfläche der Data Connect-VS Code-Erweiterung zu öffnen:
- Klicken Sie auf die Schaltfläche SDK zur App hinzufügen.
Wählen Sie im angezeigten Dialogfeld ein Verzeichnis mit dem Code für Ihre Anwendung aus: Data Connect. Der SDK-Code wird dort generiert und gespeichert.
Wählen Sie Ihre App-Plattform aus. Der SDK-Code wird dann sofort im ausgewählten Verzeichnis generiert.
Mit dem generierten SDK Abfragen und Mutationen aus Client-Apps aufrufen (Web, Android, iOS, Flutter).
Schema und Abfrage in der Produktion bereitstellen
Sobald Sie die lokale Einrichtung in Ihrer App vorgenommen haben, können Sie Ihr Schema, Ihre Daten und Abfragen in der Cloud bereitstellen. Sie benötigen einen Blaze-Plan, um eine Cloud SQL-Instanz einzurichten.
Rufen Sie in der Firebase-Konsole den Bereich „Data Connect“ auf und erstellen Sie eine kostenlose Testversion einer Cloud SQL-Instanz.
Führen Sie im VS Code-Terminal den Befehl firebase init dataconnect aus und wählen Sie die Region/Dienst-ID aus, die Sie gerade in der Console erstellt haben.
Wenn die Meldung File dataconnect/dataconnect.yaml already exists, Überschreiben? angezeigt wird, wählen Sie Y aus.
Klicken Sie in der Benutzeroberfläche der Data Connect-VS Code-Erweiterung auf die Schaltfläche In Produktion bereitstellen.
Rufen Sie nach der Bereitstellung die Firebase Console auf, um zu prüfen, ob das Schema, die Vorgänge und die Daten in die Cloud hochgeladen wurden. Sie sollten das Schema ansehen und Ihre Vorgänge auch in der Console ausführen können. Die Cloud SQL for PostgreSQL-Instanz wird mit dem endgültig bereitgestellten generierten Schema und den Daten aktualisiert.
Nächste Schritte
Sehen Sie sich Ihr bereitgestelltes Projekt an und entdecken Sie weitere Tools:
- In der Firebase Console können Sie Ihrer Datenbank Daten hinzufügen, Ihre Schemas prüfen und ändern sowie Ihren Data Connect-Dienst überwachen.
Weitere Informationen finden Sie in der Dokumentation. Wenn Sie beispielsweise den Schnellstart abgeschlossen haben:
- Weitere Informationen zur Entwicklung von Schemas, Abfragen und Mutationen
- Informationen zum Generieren von Client-SDKs und zum Aufrufen von Abfragen und Mutationen aus Clientcode für das Web, Android, iOS und Flutter.