SDK های مشتری Firebase Data Connect به شما امکان می دهند پرس و جوها و جهش های سمت سرور خود را مستقیماً از یک برنامه Firebase فراخوانی کنید. همزمان با طراحی طرحواره ها، پرس و جوها و جهش هایی که در سرویس Data Connect خود مستقر می کنید، یک SDK مشتری سفارشی ایجاد می کنید. سپس، شما متدها را از این SDK در منطق کلاینت خود ادغام می کنید.
همانطور که در جاهای دیگر ذکر کردیم، توجه به این نکته مهم است که کوئریها و جهشهای Data Connect توسط کد مشتری ارسال نمیشوند و روی سرور اجرا نمیشوند. در عوض، هنگام استقرار، عملیات Data Connect مانند توابع ابری در سرور ذخیره می شود. این بدان معناست که شما باید تغییرات سمت کلاینت مربوطه را برای جلوگیری از شکستن کاربران موجود (مثلاً در نسخههای قدیمیتر برنامه) اعمال کنید.
به همین دلیل است که Data Connect یک محیط توسعهدهنده و ابزاری را در اختیار شما قرار میدهد که به شما امکان میدهد طرحوارهها، پرسشها و جهشهای مستقر در سرور خود را نمونهسازی کنید. همچنین در حالی که شما نمونه سازی می کنید، SDK های سمت سرویس گیرنده را به طور خودکار تولید می کند.
هنگامی که بهروزرسانیهای سرویس و برنامههای سرویس گیرنده خود را تکرار کردید، بهروزرسانیهای سمت سرور و سرویس گیرنده آماده اجرا هستند.
Kotlin SDK خود را ایجاد کنید
مانند بسیاری از پروژه های Firebase، کار بر روی کد مشتری Firebase Data Connect در یک فهرست پروژه محلی انجام می شود. هم افزونه Data Connect VS Code و هم Firebase CLI ابزارهای محلی مهمی برای تولید و مدیریت کد مشتری هستند.
گزینههای تولید 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
است. package
با دستور بسته Kotlin جایگزین کنید تا در فایل های تولید شده استفاده شود، یا package
حذف کنید تا از یک بسته پیش فرض استفاده کنید.
SDK ها را هنگام نمونه سازی به روز کنید
اگر به صورت تعاملی با افزونه Data Connect VS Code و شبیهساز Data Connect آن نمونهسازی میکنید، فایلهای منبع SDK بهطور خودکار تولید و بهروزرسانی میشوند در حالی که فایلهای .gql
را که طرحوارهها، پرسشها و جهشها را تعریف میکنند، تغییر میدهید. این می تواند یک ویژگی مفید در بارگذاری مجدد جریان های کاری داغ باشد.
.gql
تنظیم کنید و همچنین منابع SDK را بهطور خودکار بهروزرسانی کنید.همچنین، میتوانید هر زمان که فایلهای .gql تغییر میکنند، از CLI برای بازسازی SDKها استفاده کنید:
firebase dataconnect:sdk:generate --watch
SDK ها را برای ادغام و برای انتشار تولید ایجاد کنید
در برخی از سناریوها، مانند آماده کردن منابع پروژه برای ارسال برای آزمایشهای CI، میتوانید برای بهروزرسانی دستهای Firebase CLI تماس بگیرید.
در این موارد، از firebase dataconnect:sdk:generate
استفاده کنید.
کد مشتری را تنظیم کنید
Data Connect در کد مشتری خود بگنجانید
برای تنظیم کد سرویس گیرنده خود برای استفاده از Data Connect و SDK تولید شده خود، ابتدا دستورالعمل های استاندارد راه اندازی Firebase را دنبال کنید.
سپس موارد زیر را به بخش plugins
در app/build.gradle.kts
اضافه کنید:
// 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.1.0") // Optional
implementation("com.google.firebase:firebase-appcheck:18.0.0") // Optional
Data Connect Android SDK را راه اندازی کنید
نمونه Data Connect خود را با استفاده از اطلاعاتی که برای راه اندازی Data Connect استفاده کردید (همه در تب Data Connect کنسول Firebase موجود است) راه اندازی کنید.
شی ConnectorConfig
SDK به یک شی پیکربندی رابط نیاز دارد.
این شی به طور خودکار از serviceId
و location
در dataconnect.yaml
و connectorId
در connector.yaml
تولید می شود.
دریافت نمونه اتصال
اکنون که یک شی پیکربندی را تنظیم کرده اید، یک نمونه اتصال دهنده Data Connect را دریافت کنید. کد کانکتور شما توسط شبیه ساز Data Connect تولید می شود. اگر نام کانکتور شما movies
است و بسته Kotlin com.myapplication
است، همانطور که در connector.yaml
مشخص شده است، شیء رابط را با فراخوانی بازیابی کنید:
val connector = com.myapplication.MoviesConnector.instance
کوئری ها و جهش ها را اجرا کنید
با شی رابط، می توانید پرس و جوها و جهش ها را همانطور که در کد منبع GraphQL تعریف شده است اجرا کنید. فرض کنید کانکتور شما دارای این عملیات تعریف شده است:
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()
query بازیابی شود.
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
برنامه اندروید خود را نمونه اولیه و آزمایش کنید
کلاینت های ابزار برای استفاده از شبیه ساز محلی
می توانید از شبیه ساز Data Connect استفاده کنید، چه از پسوند Data Connect VS Code یا از CLI.
ابزار دقیق برنامه برای اتصال به شبیه ساز برای هر دو سناریو یکسان است.
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 SDKs
سرور Data Connect نشان دهنده انواع داده های رایج و سفارشی GraphQL است. این موارد در SDK به شرح زیر نشان داده شده است.
نوع اتصال داده | کاتلین |
---|---|
رشته | رشته |
بین المللی | Int (32 بیتی) |
شناور | دوبل (64 بیت شناور) |
بولی | بولی |
UUID | java.util.UUID |
تاریخ | java.util.Date |
مهر زمان | com.google.firebase.Timestamp |
Int64 | طولانی |
هر | com.google.firebase.dataconnect.AnyValue |