Dalam panduan memulai ini, Anda akan membuat dan men-deploy database contoh kecil serta mengaksesnya dari aplikasi Android.
Prasyarat
Untuk menyelesaikan panduan memulai ini, Anda memerlukan hal berikut:
- Lingkungan dengan alat berikut yang diinstal:
- Android Studio versi terbaru.
- Firebase CLI. Jika Anda telah menginstal NPM, jalankan:
Jika tidak, lihat dokumen untuk petunjuk penginstalan.npm install -g firebase-tools@latest
- Akun Google.
Tutorial
| Tutorial | |
|---|---|
1. Membuat project Android Studio baruDi Android Studio, buat project baru dengan template Empty Activity. Beri nama project Quickstart App dengan nama paket com.example.quickstartapp. |
|
2. Menambahkan Firebase ke project Android StudioTambahkan dependensi Firebase dan plugin serialisasi Kotlin ke file
|
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.5.0" 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.15.0")) implementation("com.google.firebase:firebase-dataconnect") } |
3. Menginisialisasi project FirebaseUbah ke direktori project Android Studio dan lakukan inisialisasi project Firebase di dalamnya. |
cd ~/QuickstartAppfirebase login --reauthfirebase init dataconnectJika diminta, pilih opsi berikut:
Terima nilai default untuk semua perintah lainnya. Selanjutnya, daftarkan aplikasi Android Anda di project Firebase. firebase apps:create -a com.example.quickstartapp android android-quickstartfirebase apps:sdkconfig android -o app/google-services.json |
4. Meninjau definisi GraphQL contohDi SQL Connect, Anda menentukan semua skema dan operasi database menggunakan GraphQL. Saat Anda menginisialisasi project, Firebase CLI membuat beberapa definisi contoh untuk membantu Anda memulai. |
dataconnect/schema/schema.gql (excerpt)
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. Men-deploy skema dan operasiSetiap kali Anda membuat perubahan pada skema, kueri, atau mutasi database, Anda harus men-deploy-nya agar perubahan diterapkan pada database. |
|
6. Mengisi database dengan data contohData awal ini akan memberi Anda sesuatu untuk dilihat saat menguji aplikasi contoh. Perhatikan bahwa pada langkah ini Anda menjalankan GraphQL arbitrer, yang diizinkan untuk tugas administratif. |
|
7. Membuat Android client SDKPerintah ini menggunakan definisi GraphQL Anda untuk membuat Android client SDK khusus untuk database Anda. Anda menggunakan library ini di aplikasi klien untuk melakukan semua operasi database. Anda dapat membuat library untuk beberapa platform, termasuk
Swift untuk iOS, JavaScript untuk web, dan Flutter, dengan menambahkan definisi ke
|
public interface ExampleConnector : GeneratedConnector<ExampleConnector> { override val dataConnect: com.google.firebase.dataconnect.FirebaseDataConnect public val listMovies: ListMoviesQuery // ... } |
8. Menulis klien Android contohGanti konten
Perhatikan bahwa aplikasi menyelesaikan akses database yang diperlukan menggunakan fungsi dari SDK yang dibuat. |
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. Coba aplikasinyaDari Android Studio, jalankan aplikasi contoh untuk melihatnya beraksi. |
|
Langkah berikutnya
Mencoba ekstensi VS Code SQL Connect
Saat mengembangkan dengan SQL Connect, sebaiknya gunakan ekstensi VS Code SQL Connect. Meskipun Anda tidak menggunakan Visual Studio Code sebagai lingkungan pengembangan utama, ekstensi ini menyediakan beberapa fitur yang membuat pengembangan skema dan operasi menjadi lebih mudah:
- Server bahasa GraphQL, yang menyediakan pemeriksaan sintaksis dan saran pelengkapan otomatis khusus untuk SQL Connect
- Tombol CodeLens sebaris dengan kode Anda yang memungkinkan Anda membaca dan menulis data dari file definisi skema serta menjalankan kueri dan mutasi dari definisi operasi.
- Menjaga SDK yang dibuat tetap disinkronkan secara otomatis dengan definisi GraphQL Anda.
- Penyiapan emulator lokal yang disederhanakan.
- Deployment yang disederhanakan ke produksi.
Menggunakan emulator SQL Connect untuk pengembangan lokal
Meskipun tutorial ini menunjukkan cara men-deploy SQL Connect skema dan operasi langsung ke produksi, Anda mungkin tidak ingin membuat perubahan pada database produksi saat Anda aktif mengembangkan aplikasi. Sebagai gantinya, siapkan SQL Connect emulator dan lakukan pekerjaan pengembangan terhadapnya, bukan produksi. Emulator ini menyiapkan instance PGlite lokal yang berperilaku mirip dengan instance PostgreSQL aktif di Cloud SQL.
Mempelajari cara menulis skema dan operasi untuk aplikasi Anda
Saat mengembangkan aplikasi dengan SQL Connect, desain skema dan operasi adalah salah satu tugas pengembangan pertama dan terpenting yang akan Anda selesaikan.
- Gemini di Firebase konsol adalah alat AI yang dapat membuat skema SQL Connect dari deskripsi bahasa alami aplikasi Anda. Alat ini dapat membantu Anda memulai dengan sangat cepat, terutama jika Anda belum pernah menggunakan database relasional sebelumnya.
- Atau, Anda dapat menulis skema, kueri, dan mutasi database langsung menggunakan GraphQL. Mulai dengan panduan di Mendesain skema, lalu lanjutkan ke halaman lanjutan untuk mempelajari cara menulis operasi.SQL Connect
Mempelajari cara mendapatkan update real-time dari SQL Connect
Anda dapat menggunakan SQL Connect untuk menulis aplikasi klien yang bereaksi terhadap perubahan data secara real time. Lihat Mendapatkan update real-time dari SQL Connect.