Bu hızlı başlangıç kılavuzunda küçük bir örnek veritabanı oluşturup dağıtacak ve bu veritabanına bir Android uygulamasından erişeceksiniz.
Ön koşullar
Bu hızlı başlangıç kılavuzunu tamamlamak için aşağıdakilere ihtiyacınız vardır:
- Aşağıdaki araçların yüklü olduğu bir ortam:
- Android Studio'nun son sürümlerinden biri.
- Firebase CLI NPM yüklüyse şu komutu çalıştırın:
Aksi takdirde, yükleme talimatları için dokümanlara bakın.npm install -g firebase-tools@latest
- Google Hesabı
Eğitim
| Eğitim | |
|---|---|
1. Yeni bir Android Studio projesi oluşturmaAndroid Studio'da Empty Activity (Boş Etkinlik) şablonunu kullanarak yeni bir proje oluşturun. Projeyi Quickstart App (Hızlı Başlangıç Uygulaması) olarak adlandırın ve paket adı olarak com.example.quickstartapp'i kullanın. |
|
2. Firebase'i Android Studio projenize eklemeFirebase bağımlılıklarını ve Kotlin serileştirme eklentisini |
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 projesi başlatmaAndroid Studio proje dizinine geçin ve bu dizinde bir Firebase projesi başlatın. |
cd ~/QuickstartAppfirebase login --reauthfirebase init dataconnectİstendiğinde aşağıdaki seçenekleri belirleyin:
Diğer tüm istemler için varsayılan değerleri kabul edin. Ardından, Android uygulamanızı Firebase projenize kaydedin. firebase apps:create -a com.example.quickstartapp android android-quickstartfirebase apps:sdkconfig android -o app/google-services.json |
4. Örnek GraphQL tanımlarını inceleyinSQL Connect içinde, tüm veritabanı şemalarınızı ve işlemlerinizi GraphQL kullanarak tanımlarsınız. Projenizi başlattığınızda Firebase CLI, başlamanıza yardımcı olmak için bazı örnek tanımlar oluşturdu. |
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. Şemalarınızı ve işlemlerinizi dağıtmaVeritabanı şemalarınızda, sorgularınızda veya mutasyonlarınızda değişiklik yaptığınızda, değişikliklerinizin veritabanında geçerli olması için bunları dağıtmanız gerekir. |
|
6. Veritabanını örnek verilerle doldurmaBu başlangıç verileri, örnek uygulamayı test ederken inceleyebileceğiniz bir şey sunar. Bu adımda, yönetim görevleri için izin verilen rastgele GraphQL'i yürüttüğünüzü unutmayın. |
|
7. Android istemci SDK'sı oluşturmaBu komut, GraphQL tanımlarınızı kullanarak özellikle veritabanınız için bir Android istemci SDK'sı oluşturur. Tüm veritabanı işlemlerini gerçekleştirmek için bu kitaplığı istemci uygulamanızda kullanırsınız.
|
public interface ExampleConnector : GeneratedConnector<ExampleConnector> { override val dataConnect: com.google.firebase.dataconnect.FirebaseDataConnect public val listMovies: ListMoviesQuery // ... } |
8. Örnek bir Android istemcisi yazma
Uygulamanın, oluşturulan SDK'daki bir işlevi kullanarak gerekli veritabanı erişimini tamamladığını unutmayın. |
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. Uygulamayı deneyinÇalışırken görmek için Android Studio'dan örnek uygulamayı çalıştırın. |
|
Sonraki adımlar
SQL Connect VS Code uzantısını deneyin
SQL Connect ile geliştirme yaparken SQL Connect VS Code uzantısını kullanmanızı önemle tavsiye ederiz. Visual Studio Code'u birincil geliştirme ortamınız olarak kullanmasanız bile uzantı, şema ve işlem geliştirmeyi daha kolay hale getiren çeşitli özellikler sunar:
- SQL Connect'ya özel söz dizimi denetimi ve otomatik tamamlama önerileri sağlayan bir GraphQL dil sunucusu
- Şema tanımı dosyalarınızdan veri okumanıza ve yazmanıza, ayrıca işlem tanımlarınızdan sorgu ve mutasyon yürütmenize olanak tanıyan, kodunuzla aynı satırda bulunan CodeLens düğmeleri.
- Oluşturulan SDK'larınızı GraphQL tanımlarınızla otomatik olarak senkronize tutun.
- Basitleştirilmiş yerel emülatör kurulumu.
- Üretim ortamına basitleştirilmiş dağıtım.
Yerel geliştirme için SQL Connect emülatörünü kullanma
Bu eğitimde SQL Connect şemalarının ve işlemlerinin doğrudan canlı sürüme nasıl dağıtılacağı gösterilse de uygulamanızı aktif olarak geliştirirken canlı veritabanınızda değişiklik yapmak istemeyebilirsiniz. Bunun yerine, SQL Connect emülatörünü ayarlayın ve geliştirme çalışmalarınızı canlı sürüm yerine emülatör üzerinde yapın. Emülatör, Cloud SQL üzerinde canlı bir PostgreSQL örneğine benzer şekilde davranan yerel bir PGlite örneği oluşturur.
Uygulamanız için şemaları ve işlemleri nasıl yazacağınızı öğrenin
SQL Connect ile uygulama geliştirirken şemalarınızın ve işlemlerinizin tasarımı, tamamlayacağınız ilk ve en önemli geliştirme görevlerinden biridir.
- Firebase konsolundaki Gemini, uygulamanızın doğal dildeki açıklamasından SQL Connect şemaları oluşturabilen bir yapay zeka aracıdır. Bu araç, özellikle daha önce hiç ilişkisel veritabanlarıyla çalışmadıysanız çok hızlı bir şekilde başlamanıza yardımcı olabilir.
- Alternatif olarak, veritabanı şemalarını, sorguları ve mutasyonları doğrudan GraphQL kullanarak yazabilirsiniz. SQL Connect şemaları tasarlama bölümündeki yönergelerle başlayın ve ardından işlemleri nasıl yazacağınızı öğrenmek için takip sayfalarına geçin.