In dieser Kurzanleitung erstellen und stellen Sie eine kleine Beispieldatenbank bereit und greifen von einer Android-App aus darauf zu.
Vorbereitung
Für diese Kurzanleitung ist Folgendes erforderlich:
- Eine Umgebung mit den folgenden Tools:
- Eine aktuelle Version von Android Studio.
- Die Firebase CLI. Wenn Sie NPM installiert haben, führen Sie Folgendes aus:
Andernfalls finden Sie in der Dokumentation eine Installationsanleitung.npm install -g firebase-tools@latest
- Ein Google-Konto.
Anleitung
| Anleitung | |
|---|---|
1. Ein neues Android Studio-Projekt erstellenErstellen Sie in Android Studio ein neues Projekt mit der Vorlage Leere Aktivität. Nennen Sie das Projekt Quickstart App mit dem Paketnamen com.example.quickstartapp. |
|
2. Android Studio-Projekt Firebase hinzufügenFügen Sie den
|
QuickstartApp/build.gradle.kts
plugins { alias(libs.plugins.android.application) apply false alias(libs.plugins.kotlin.compose) apply false // Add this line. id("com.google.gms.google-services") version "4.4.4" apply false } plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.compose) // Add these lines. kotlin("plugin.serialization") version libs.versions.kotlin id("com.google.gms.google-services") } // ... dependencies { // ... // Add these lines. implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.11.0") implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.11.0") implementation(platform("com.google.firebase:firebase-bom:34.14.0")) implementation("com.google.firebase:firebase-dataconnect") } |
3. Firebase-Projekt initialisierenWechseln Sie zum Android Studio-Projektverzeichnis und initialisieren Sie darin ein Firebase-Projekt. |
cd ~/QuickstartAppfirebase login --reauthfirebase init dataconnectWählen Sie die folgenden Optionen aus, wenn Sie dazu aufgefordert werden:
Übernehmen Sie für alle anderen Eingabeaufforderungen die Standardwerte. Registrieren Sie als Nächstes Ihre Android-App in Ihrem Firebase-Projekt. firebase apps:create -a com.example.quickstartapp android android-quickstartfirebase apps:sdkconfig android -o app/google-services.json |
4. Beispiel-GraphQL-Definitionen ansehenIn SQL Connect definieren Sie alle Datenbankschemas und -vorgänge mit GraphQL. Als Sie Ihr Projekt initialisiert haben, hat die Firebase CLI einige Beispieldefinitionen erstellt, damit Sie loslegen können. |
dataconnect/schema/schema.gql (Auszug)
type Movie @table { title: String! imageUrl: String! genre: String } type MovieMetadata @table { movie: Movie! @unique rating: Float releaseYear: Int description: String } query ListMovies @auth(level: PUBLIC) { movies { id title imageUrl genre } } |
5. Schemas und Vorgänge bereitstellenWenn Sie Änderungen an Ihren Datenbankschemas, Abfragen oder Mutationen vornehmen, müssen Sie sie bereitstellen, damit die Änderungen in der Datenbank wirksam werden. |
|
6. Datenbank mit Beispieldaten füllenMit diesen Beispieldaten können Sie die Beispiel-App testen. Beachten Sie, dass Sie in diesem Schritt beliebige GraphQL-Abfragen ausführen, was für Verwaltungsaufgaben zulässig ist. |
|
7. Android-Client-SDK generierenMit diesem Befehl werden Ihre GraphQL-Definitionen verwendet, um ein Android-Client-SDK speziell für Ihre Datenbank zu generieren. Sie verwenden diese Bibliothek in Ihrer Client-App, um alle Datenbankvorgänge auszuführen. Sie können Bibliotheken für mehrere Plattformen generieren, darunter
Swift für iOS, JavaScript für das Web und Flutter, indem Sie Definitionen zu
|
public interface ExampleConnector : GeneratedConnector<ExampleConnector> { override val dataConnect: com.google.firebase.dataconnect.FirebaseDataConnect public val listMovies: ListMoviesQuery // ... } |
8. Android-Beispielclient schreibenErsetzen Sie den Inhalt von
Beachten Sie, dass die App den erforderlichen Datenbankzugriff mit einer Funktion aus dem generierten SDK ausführt. |
package com.example.quickstartapp import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import com.example.quickstartapp.ui.theme.QuickstartAppTheme import com.google.firebase.dataconnect.generated.ExampleConnector import com.google.firebase.dataconnect.generated.ListMoviesQuery import com.google.firebase.dataconnect.generated.execute import com.google.firebase.dataconnect.generated.instance class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() setContent { QuickstartAppTheme() { Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding -> var movies by remember { mutableStateOf(emptyList<ListMoviesQuery.Data.MoviesItem>()) } LaunchedEffect(Unit) { // Queries need to be executed in a coroutine context try { movies = ExampleConnector.instance.listMovies.execute().data.movies } catch (e: Exception) { // TODO: Handle error, e.g., show a Toast or update a state variable to // display an error message. } } LazyColumn(modifier = Modifier.padding(innerPadding)) { items(movies) { movie -> Text(text = movie.title) } } } } } } } |
9. App testenFühren Sie die Beispiel-App in Android Studio aus, um sie in Aktion zu sehen. |
|
Nächste Schritte
SQL Connect VS Code-Erweiterung testen
Bei der Entwicklung mit SQL Connect empfehlen wir dringend, die SQL Connect VS Code-Erweiterung zu verwenden. Auch wenn Sie Visual Studio Code nicht als primäre Entwicklungsumgebung verwenden, bietet die Erweiterung mehrere Funktionen, die die Entwicklung von Schemas und Vorgängen erleichtern:
- Ein GraphQL-Sprachserver mit Syntaxprüfung und Vorschlägen zur automatischen Vervollständigung speziell für SQL Connect
- CodeLens-Schaltflächen in Ihrem Code, mit denen Sie Daten aus Ihren Schema definitionsdateien lesen und schreiben sowie Abfragen und Mutationen aus Ihren Vorgangsdefinitionen ausführen können.
- Automatische Synchronisierung der generierten SDKs mit Ihren GraphQL-Definitionen.
- Vereinfachte Einrichtung des lokalen Emulators.
- Vereinfachte Bereitstellung in der Produktion.
Verwenden Sie den SQL Connect Emulator für die lokale Entwicklung
In dieser Kurzanleitung haben Sie gelernt, wie Sie SQL Connect Schemas und Vorgänge direkt in der Produktion bereitstellen. Wahrscheinlich möchten Sie aber keine Änderungen an Ihrer Produktionsdatenbank vornehmen, während Sie aktiv an Ihrer App arbeiten. Richten Sie stattdessen den SQL Connect Emulator ein und führen Sie Ihre Entwicklungsarbeiten damit aus. Der Emulator richtet eine lokale PGlite-Instanz ein, die sich ähnlich wie eine Live-PostgreSQL Instanz auf Cloud SQL verhält.
Informationen zum Schreiben von Schemas und Vorgängen für Ihre App
Bei der Entwicklung von Apps mit SQL Connect ist das Design Ihrer Schemas und Vorgänge eine der ersten und wichtigsten Entwicklungsaufgaben.
- Gemini in der Firebase Konsole ist ein KI-Tool , mit dem SQL Connect Schemas aus einer Beschreibung Ihrer App in natürlicher Sprache generiert werden können. Mit diesem Tool können Sie sehr schnell loslegen, insbesondere wenn Sie noch nie mit relationalen Datenbanken gearbeitet haben.
- Alternativ können Sie Datenbankschemas, Abfragen und Mutationen direkt mit GraphQL schreiben. Beginnen Sie mit der Anleitung unter Schemas SQL Connectentwerfen, und lesen Sie dann die Folgeseiten, um zu erfahren, wie Sie Vorgänge schreiben.