W tym krótkim wprowadzeniu utworzysz i wdrożysz małą przykładową bazę danych oraz uzyskasz do niej dostęp z aplikacji na Androida.
Wymagania wstępne
Aby ukończyć to krótkie wprowadzenie, potrzebujesz:
- Środowisko z zainstalowanymi tymi narzędziami:
- najnowsza wersja Android Studio,
- wiersz poleceń Firebase. Jeśli masz zainstalowany NPM, uruchom:
W przeciwnym razie zapoznaj się z dokumentacją zawierającą instrukcje instalacji.npm install -g firebase-tools@latest
- konto Google.
Samouczek
| Samouczek | |
|---|---|
1. Utwórz nowy projekt w Android StudioW Android Studio utwórz nowy projekt, korzystając z szablonu Pusta aktywność. Nazwij projekt Quickstart App i użyj nazwy pakietu com.example.quickstartapp. |
|
2. Dodaj Firebase do projektu w Android StudioDodaj zależności Firebase i wtyczkę serializacji Kotlin do swoich
|
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. Zainicjuj projekt w FirebasePrzejdź do katalogu projektu Android Studio i zainicjuj w nim projekt w Firebase. |
cd ~/QuickstartAppfirebase login --reauthfirebase init dataconnectPo wyświetleniu pytania wybierz te opcje:
Zaakceptuj domyślne wartości we wszystkich innych promptach. Następnie zarejestruj aplikację na Androida w projekcie w Firebase. firebase apps:create -a com.example.quickstartapp android android-quickstartfirebase apps:sdkconfig android -o app/google-services.json |
4. Sprawdź przykładowe definicje GraphQLW SQL Connect wszystkie schematy i operacje bazy danych definiujesz za pomocą GraphQL. Gdy zainicjujesz projekt, interfejs wiersza poleceń Firebase utworzy kilka przykładowych definicji, które pomogą Ci zacząć. |
dataconnect/schema/schema.gql (fragment)
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. Wdróż schematy i operacjeZa każdym razem, gdy wprowadzisz zmiany w schematach bazy danych, zapytaniach lub mutacjach, musisz wdrożyć je, aby zmiany zaczęły obowiązywać w bazie danych. |
|
6. Wypełnij bazę danych przykładowymi danymiTe dane początkowe pozwolą Ci sprawdzić przykładową aplikację. Pamiętaj że w tym kroku wykonujesz dowolny kod GraphQL, co jest dozwolone w przypadku zadań administracyjnych. |
|
7. Wygeneruj pakiet SDK klienta na AndroidaTo polecenie używa definicji GraphQL do wygenerowania pakietu SDK klienta na Androida specjalnie dla Twojej bazy danych. Używasz tej biblioteki w aplikacji klienckiej do wykonywania wszystkich operacji na bazie danych. Możesz wygenerować biblioteki dla wielu platform, w tym
Swift na iOS, JavaScript na potrzeby internetu i Fluttera, dodając definicje do
|
public interface ExampleConnector : GeneratedConnector<ExampleConnector> { override val dataConnect: com.google.firebase.dataconnect.FirebaseDataConnect public val listMovies: ListMoviesQuery // ... } |
8. Napisz przykładowego klienta na AndroidaZastąp zawartość pliku
Zwróć uwagę, że aplikacja wykonuje niezbędny dostęp do bazy danych za pomocą funkcji z wygenerowanego pakietu SDK. |
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. Wypróbuj aplikacjęW Android Studio uruchom przykładową aplikację, aby zobaczyć, jak działa. |
|
Dalsze kroki
Wypróbuj rozszerzenie SQL Connect dla VS Code
Podczas programowania za pomocą SQL Connect zdecydowanie zalecamy używanie rozszerzenia SQL Connect dla VS Code. Nawet jeśli nie używasz Visual Studio Code jako głównego środowiska programistycznego rozszerzenie udostępnia kilka funkcji, które ułatwiają tworzenie schematów i operacji
- Serwer języka GraphQL, który zapewnia sprawdzanie składni i sugestie autouzupełniania specyficzne dla SQL Connect
- Przyciski CodeLens w wierszu kodu, które umożliwiają odczytywanie i zapisywanie danych z plików definicji schematu definicji operacji.
- Automatyczne synchronizowanie wygenerowanych pakietów SDK z definicjami GraphQL.
- Uproszczona konfiguracja emulatora lokalnego.
- Uproszczone wdrażanie w środowisku produkcyjnym.
Używaj emulatora SQL Connect do programowania lokalnego
W tym samouczku pokazaliśmy, jak wdrożyć SQL Connect schematy i operacje bezpośrednio w środowisku produkcyjnym, ale prawdopodobnie nie będziesz chcieć wprowadzać zmian w bazie danych w środowisku produkcyjnym podczas aktywnego programowania aplikacji. Zamiast tego skonfiguruj SQL Connect emulator i programuj w nim, a nie w środowisku produkcyjnym. Emulator konfiguruje lokalną instancję PGlite, która działa podobnie do aktywnej instancji PostgreSQL w Cloud SQL.
Dowiedz się, jak pisać schematy i operacje dla aplikacji
Podczas tworzenia aplikacji za pomocą SQL Connect projektowanie schematów i operacji jest jednym z pierwszych i najważniejszych zadań programistycznych.
- Gemini w konsoli Firebase to narzędzie AI które może generować schematy SQL Connect na podstawie opisu aplikacji w języku naturalnym. To narzędzie może pomóc Ci szybko zacząć, zwłaszcza jeśli nigdy wcześniej nie pracowałeś(-aś) z relacyjnymi bazami danych.
- Możesz też pisać schematy bazy danych, zapytania i mutacje bezpośrednio za pomocą GraphQL. Zacznij od wskazówek w Projektowanie SQL Connect schematów, a następnie przejdź do kolejnych stron, aby dowiedzieć się, jak pisać operacje.