इस क्विकस्टार्ट में, आपको एक छोटा सैंपल डेटाबेस बनाने और उसे डिप्लॉय करने के बारे में बताया जाएगा. साथ ही, उसे Android ऐप्लिकेशन से ऐक्सेस करने के बारे में भी बताया जाएगा.
ज़रूरी शर्तें
इस क्विकस्टार्ट को पूरा करने के लिए, आपको इनकी ज़रूरत होगी:
- ऐसा एनवायरमेंट जिसमें ये टूल इंस्टॉल हों:
- Android Studio का नया वर्शन.
- Firebase CLI. अगर आपने NPM इंस्टॉल किया है, तो यह कमांड चलाएं:
इसके अलावा, इंस्टॉल करने के निर्देशों के लिए दस्तावेज़ देखें.npm install -g firebase-tools@latest
- Google खाता.
ट्यूटोरियल
| ट्यूटोरियल | |
|---|---|
1. Android Studio में नया प्रोजेक्ट बनानाAndroid Studio में, Empty Activity टेंप्लेट का इस्तेमाल करके एक नया प्रोजेक्ट बनाएं. प्रोजेक्ट का नाम Quickstart App और पैकेज का नाम com.example.quickstartapp रखें. |
|
2. अपने Android Studio प्रोजेक्ट में Firebase जोड़नाअपनी |
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 प्रोजेक्ट शुरू करनाAndroid Studio प्रोजेक्ट डायरेक्ट्री पर जाएं और उसमें Firebase प्रोजेक्ट शुरू करें. |
cd ~/QuickstartAppfirebase login --reauthfirebase init dataconnectजब कहा जाए, तब इनमें से कोई विकल्प चुनें:
अन्य सभी प्रॉम्प्ट के लिए, डिफ़ॉल्ट वैल्यू स्वीकार करें. इसके बाद, अपने Android ऐप्लिकेशन को Firebase प्रोजेक्ट में रजिस्टर करें. firebase apps:create -a com.example.quickstartapp android android-quickstartfirebase apps:sdkconfig android -o app/google-services.json |
4. GraphQL की परिभाषाओं का उदाहरण देखनाSQL Connect में, GraphQL का इस्तेमाल करके अपने सभी डेटाबेस स्कीमा और ऑपरेशन तय किए जाते हैं. प्रोजेक्ट शुरू करते समय, Firebase CLI ने कुछ उदाहरण परिभाषाएं बनाई थीं, ताकि आप शुरू कर सकें. |
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. अपने स्कीमा और कार्रवाइयां डिप्लॉय करनाजब भी अपने डेटाबेस स्कीमा, क्वेरी या म्यूटेशन में बदलाव किए जाते हैं, तो आपको उन्हें डिप्लॉय करना होगा. ऐसा करने पर ही, डेटाबेस पर बदलाव लागू होंगे. |
|
6. डेटाबेस में सैंपल डेटा डालनाइस सीड डेटा से, आपको सैंपल ऐप्लिकेशन की जांच करते समय कुछ डेटा देखने को मिलेगा. ध्यान दें कि इस चरण में, आपको मनमुताबिक GraphQL को लागू करना होगा. ऐसा एडमिन से जुड़े टास्क के लिए किया जा सकता है. |
|
7. Android क्लाइंट SDK टूल जनरेट करनायह कमांड, आपकी GraphQL परिभाषाओं का इस्तेमाल करके, खास तौर पर आपके डेटाबेस के लिए Android क्लाइंट SDK टूल जनरेट करती है. इस लाइब्रेरी का इस्तेमाल, क्लाइंट ऐप्लिकेशन में सभी डेटाबेस ऑपरेशन करने के लिए किया जाता है.
|
public interface ExampleConnector : GeneratedConnector<ExampleConnector> { override val dataConnect: com.google.firebase.dataconnect.FirebaseDataConnect public val listMovies: ListMoviesQuery // ... } |
8. Android क्लाइंट का सैंपल लिखना
ध्यान दें कि ऐप्लिकेशन, जनरेट किए गए एसडीके के फ़ंक्शन का इस्तेमाल करके, ज़रूरी डेटाबेस ऐक्सेस करता है. |
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. ऐप्लिकेशन आज़माएंAndroid Studio में, उदाहरण के तौर पर दिए गए ऐप्लिकेशन को चलाकर देखें कि यह कैसे काम करता है. |
|
अगले चरण
SQL Connect VS Code एक्सटेंशन आज़माएं
SQL Connect का इस्तेमाल करके डेवलपमेंट करते समय, हमारा सुझाव है कि आप SQL Connect VS Code एक्सटेंशन का इस्तेमाल करें. अगर Visual Studio Code का इस्तेमाल मुख्य डेवलपमेंट एनवायरमेंट के तौर पर नहीं किया जाता है, तो भी एक्सटेंशन कई सुविधाएं देता है. इनसे स्कीमा और ऑपरेशन डेवलपमेंट को ज़्यादा आसानी से किया जा सकता है:
- GraphQL लैंग्वेज सर्वर, जो SQL Connect के लिए सिंटैक्स की जांच करने और ऑटोकंप्लीट के सुझाव देने की सुविधा देता है
- आपके कोड की लाइन में CodeLens बटन. इनकी मदद से, स्कीमा की परिभाषा वाली फ़ाइलों से डेटा पढ़ा और लिखा जा सकता है. साथ ही, ऑपरेशन की परिभाषाओं से क्वेरी और म्यूटेशन लागू किए जा सकते हैं.
- जनरेट किए गए एसडीके को GraphQL की परिभाषाओं के साथ अपने-आप सिंक करके रखें.
- लोकल एम्युलेटर को आसानी से सेट अप किया जा सकता है.
- आसानी से प्रोडक्शन में डिप्लॉय करने की सुविधा.
लोकल डेवलपमेंट के लिए, SQL Connect एम्युलेटर का इस्तेमाल करना
इस ट्यूटोरियल में, आपको SQL Connect स्कीमा और कार्रवाइयों को सीधे प्रोडक्शन में डिप्लॉय करने का तरीका बताया गया है. हालांकि, जब ऐप्लिकेशन को डेवलप किया जा रहा हो, तब शायद आपको प्रोडक्शन डेटाबेस में बदलाव न करना पड़े. इसके बजाय, SQL Connect एम्युलेटर सेट अप करें और प्रोडक्शन के बजाय, इस पर डेवलपमेंट का काम करें. एम्युलेटर, एक लोकल PGlite इंस्टेंस सेट अप करता है. यह Cloud SQL पर मौजूद लाइव PostgreSQL इंस्टेंस की तरह ही काम करता है.
अपने ऐप्लिकेशन के लिए स्कीमा और ऑपरेशन लिखने का तरीका जानें
SQL Connect की मदद से ऐप्लिकेशन डेवलप करते समय, स्कीमा और कार्रवाइयों का डिज़ाइन तैयार करना, डेवलपमेंट से जुड़े सबसे पहले और सबसे अहम कामों में से एक है.
- Firebase कंसोल में मौजूद Gemini एक एआई टूल है. यह आपके ऐप्लिकेशन के बारे में सामान्य भाषा में दिए गए ब्यौरे से SQL Connect स्कीमा जनरेट कर सकता है. इस टूल की मदद से, बहुत कम समय में काम शुरू किया जा सकता है. खास तौर पर, अगर आपने पहले कभी रिलेशनल डेटाबेस के साथ काम नहीं किया है.
- इसके अलावा, GraphQL का इस्तेमाल करके सीधे तौर पर डेटाबेस स्कीमा, क्वेरी, और म्यूटेशन लिखे जा सकते हैं. सबसे पहले, SQL Connect स्कीमा डिज़ाइन करें में दिए गए दिशा-निर्देशों को पढ़ें. इसके बाद, फ़ॉलो-अप पेजों पर जाकर, ऑपरेशन लिखने का तरीका जानें.