जनरेट किए गए Android SDK टूल इस्तेमाल करना

Firebase Data Connect क्लाइंट SDK टूल की मदद से, सर्वर-साइड क्वेरी को कॉल किया जा सकता है और सीधे Firebase ऐप्लिकेशन से म्यूटेशन. इसमें कस्टम क्लाइंट SDK टूल जनरेट किया जाता है साथ ही, जब आप 180% की अवधि के Data Connect सेवा. इसके बाद, इस SDK टूल के तरीकों को आपके क्लाइंट लॉजिक के हिसाब से.

जैसा कि हमने कहीं और बताया है, यह ध्यान रखना ज़रूरी है कि Data Connect क्वेरी और म्यूटेशन, क्लाइंट कोड से सबमिट नहीं किए जाते और उन्हें सर्वर पर चलाया जाता है. इसके बजाय, डिप्लॉय किए जाने पर, Data Connect से जुड़ी कार्रवाइयां यहां सेव की जाती हैं जैसे कि Cloud Functions. इसका मतलब है कि आपको संबंधित ऐप्लिकेशन का इस्तेमाल करना होगा मौजूदा उपयोगकर्ताओं को नुकसान होने से बचाने के लिए, क्लाइंट-साइड की सेटिंग में बदलाव किए जाते हैं. उदाहरण के लिए, पुराने ऐप्लिकेशन पर वर्शन).

इसी वजह से, Data Connect आपको डेवलपर एनवायरमेंट मुहैया कराता है और इस टूल की मदद से अपने सर्वर से डिप्लॉय किए गए स्कीमा, क्वेरी, और म्यूटेशन के प्रोटोटाइप बनाए जा सकते हैं. प्रोटोटाइप करते समय, यह क्लाइंट-साइड SDK टूल भी अपने-आप जनरेट करता है.

अपनी सेवा और क्लाइंट ऐप्लिकेशन में अपडेट करने के बाद, सर्वर- और क्लाइंट-साइड, दोनों अपडेट डिप्लॉय करने के लिए तैयार हो जाते हैं.

Kotlin SDK टूल जनरेट करें

ज़्यादातर Firebase प्रोजेक्ट की तरह, आपके Firebase Data Connect क्लाइंट कोड पर काम, लोकल प्रोजेक्ट डायरेक्ट्री में किया जाता है. दोनों Data Connect बनाम कोड एक्सटेंशन और Firebase सीएलआई, अहम लोकल हैं क्लाइंट कोड को जनरेट और मैनेज करने के लिए टूल.

SDK टूल जनरेट करने के विकल्पों के लिए, dataconnect.yaml की कई एंट्री का इस्तेमाल किया जाता है फ़ाइल जनरेट होती है.

SDK टूल जनरेट करने की प्रोसेस शुरू करें

अपने connector.yaml में, outputDir, package, और (वेब SDK टूल के लिए) जोड़ें packageJsonDir.
connectorId: movies
generate:
  kotlinSdk:
    outputDir: ../../../src/main/java/com/myapplication
    package: com.myapplication

outputDir को उस डायरेक्ट्री के पाथ से बदलें जिसमें जनरेट किया गया कोड डाला जाएगा. यह पाथ, उस डायरेक्ट्री के हिसाब से होता है जिसमें connector.yaml फ़ाइल मौजूद होती है. जनरेट की गई फ़ाइलों में इस्तेमाल किए जाने वाले Kotlin पैकेज स्टेटमेंट से package को बदलें या डिफ़ॉल्ट पैकेज का इस्तेमाल करने के लिए package को हटाएं.

प्रोटोटाइप बनाते समय SDK टूल अपडेट करना

अगर डेटा कनेक्ट बनाम कोड एक्सटेंशन की मदद से इंटरैक्टिव तरीके से प्रोटोटाइप बनाया जा रहा है और इसके Data Connect एम्युलेटर, SDK टूल की सोर्स फ़ाइलें अपने-आप स्कीमा, क्वेरी को परिभाषित करने वाली .gql फ़ाइलों में बदलाव करते समय जनरेट और अपडेट किया गया और म्यूटेशन. यह सुविधा, वर्कफ़्लो को तुरंत (फिर से) लोड करने में मददगार हो सकती है.

अन्य मामलों में, अगर Data Connect एम्युलेटर का इस्तेमाल Firebase सीएलआई, .gql अपडेट पर स्मार्टवॉच सेट की जा सकती है. साथ ही, SDK टूल भी इस्तेमाल किया जा सकता है स्रोत अपने आप अपडेट हो जाते हैं.

इसके अलावा, .gql फ़ाइलों में बदलाव होने पर, SDK टूल फिर से जनरेट करने के लिए, CLI का इस्तेमाल किया जा सकता है:

firebase dataconnect:sdk:generate --watch

इंटिग्रेशन और प्रोडक्शन रिलीज़ के लिए SDK टूल जनरेट करें

कुछ मामलों में, जैसे कि सीआई टेस्ट के लिए सबमिट करने के लिए प्रोजेक्ट के सोर्स तैयार करना बैच अपडेट के लिए, Firebase सीएलआई को कॉल कर सकता है.

ऐसे मामलों में, firebase dataconnect:sdk:generate का इस्तेमाल करें.

क्लाइंट कोड सेट अप करें

अपने क्लाइंट कोड में Data Connect शामिल करना

Data Connect और जनरेट किए गए SDK टूल का इस्तेमाल करने के लिए, क्लाइंट कोड को सेट अप करने के लिए: पहले, Firebase सेट अप करने के स्टैंडर्ड निर्देश.

इसके बाद, app/build.gradle.kts में plugins सेक्शन में ये जोड़ें:

// The Firebase team tests with version 1.8.22; however, other 1.8 versions,
// and all newer versions are expected work too.
kotlin("plugin.serialization") version "1.8.22" // MUST match the version of the Kotlin compiler

इसके बाद, dependencies सेक्शन में इन्हें जोड़ें app/build.gradle.kts:

implementation("com.google.firebase:firebase-dataconnect:16.0.0-beta01")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.5.1")
implementation("com.google.firebase:firebase-auth:23.0.0") // Optional
implementation("com.google.firebase:firebase-appcheck:18.0.0") // Optional

Data Connect Android SDK टूल को शुरू करना

Data Connect को सेट अप करने के लिए इस्तेमाल की गई जानकारी का इस्तेमाल करके, अपने Data Connect इंस्टेंस को शुरू करें. यह जानकारी, Firebase कंसोल के Data Connect टैब में उपलब्ध है.

ConnectorConfig ऑब्जेक्ट

SDK टूल के लिए, कनेक्टर कॉन्फ़िगरेशन ऑब्जेक्ट ज़रूरी है.

यह ऑब्जेक्ट, dataconnect.yaml में serviceId और location से और connector.yaml में connectorId से अपने-आप जनरेट होता है.

कनेक्टर इंस्टेंस पाना

अब आपने कॉन्फ़िगरेशन ऑब्जेक्ट सेट अप कर लिया है, तो Data Connect पाएं कनेक्टर इंस्टेंस. आपके कनेक्टर के लिए कोड Data Connect एम्युलेटर. अगर आपके कनेक्टर का नाम movies है और connector.yaml में बताए गए मुताबिक Kotlin पैकेज com.myapplication है, तो कनेक्टर ऑब्जेक्ट को वापस पाने के लिए, इन फ़ंक्शन को कॉल करें:

val connector = com.myapplication.MoviesConnector.instance

क्वेरी और म्यूटेशन चलाना

कनेक्टर ऑब्जेक्ट का इस्तेमाल करके, क्वेरी और म्यूटेशन ग्राफ़क्यूएल का सोर्स कोड. मान लें कि आपके कनेक्टर में ये कार्रवाइयां तय की गई हैं:

mutation createMovie($title: String!, $releaseYear: Int!, $genre: String!, $rating: Int!) {
  movie_insert(data: {
    title: $title
    releaseYear: $releaseYear
    genre: $genre
    rating: $rating
  })
}

query getMovieByKey($key: Movie_Key!) {
  movie(key: $key) { id title }
}

query listMoviesByGenre($genre: String!) {
  movies(where: {genre: {eq: $genre}}) {
    id
    title
  }
}

इसके बाद, मूवी बनाने और उसे वापस पाने के लिए, यह तरीका अपनाएं:

val connector = MoviesConnector.instance

val addMovieResult1 = connector.createMovie.execute(
  title = "Empire Strikes Back",
  releaseYear = 1980,
  genre = "Sci-Fi",
  rating = 5
)

val movie1 = connector.getMovieByKey.execute(addMovieResult1.data.key)

println("Empire Strikes Back: ${movie1.data.movie}")

आप एक से ज़्यादा मूवी भी वापस ला सकते हैं:

val connector = MoviesConnector.instance

val addMovieResult2 = connector.createMovie.execute(
  title="Attack of the Clones",
  releaseYear = 2002,
  genre = "Sci-Fi",
  rating = 5
)

val listMoviesResult = connector.listMoviesByGenre.execute(genre = "Sci-Fi")

println(listMoviesResult.data.movies)

आपके पास ऐसा Flow इकट्ठा करने का विकल्प भी है जो सिर्फ़ तब नतीजा देगा, जब क्वेरी के execute() तरीके को कॉल करके कोई नया क्वेरी नतीजा वापस पाया जाएगा.

val connector = MoviesConnector.instance

connector.listMoviesByGenre.flow(genre = "Sci-Fi").collect { data ->
  println(data.movies)
}

connector.createMovie.execute(
  title="A New Hope",
  releaseYear = 1977,
  genre = "Sci-Fi",
  rating = 5
)

connector.listMoviesByGenre.execute(genre = "Sci-Fi") // will cause the Flow to get notified

अपने Android ऐप्लिकेशन का प्रोटोटाइप बनाएं और उसकी जांच करें

लोकल एमुलेटर का इस्तेमाल करने के लिए क्लाइंट को इंस्ट्रूमेंट करना

Data Connect एमुलेटर का इस्तेमाल, Data Connect VS Code एक्सटेंशन या सीएलआई, दोनों से किया जा सकता है.

ऐप्लिकेशन को एम्युलेटर से कनेक्ट करने के लिए, दोनों मामलों में एक ही तरीके से काम करें.

val connector = MoviesConnector.instance

// Connect to the emulator on "10.0.2.2:9399"
connector.dataConnect.useEmulator()

// (alternatively) if you're running your emulator on non-default port:
connector.dataConnect.useEmulator(port = 9999)

// Make calls from your app

प्रोडक्शन के संसाधनों पर स्विच करने के लिए, उन लाइनों के बारे में बताएं जो एम्युलेटर.

Data Connect SDK टूल में मौजूद डेटा टाइप

Data Connect सर्वर, सामान्य और कस्टम ग्राफ़QL डेटा दिखाता है प्रकार. इन्हें एसडीके टूल में इस तरह दिखाया जाता है.

डेटा कनेक्ट का टाइप Kotlin
स्ट्रिंग स्ट्रिंग
Int Int (32-बिट)
फ़्लोट डबल (64-बिट फ़्लोट)
बूलियन बूलियन
यूयूआईडी java.util.UUID
तारीख java.util.Date
टाइमस्टैंप com.google.firebase.Timestamp
इंट64 ज़्यादा समय के लिए
कोई भी com.google.firebase.dataconnect.AnyValue