এই কুইকস্টার্টে, আপনি একটি ছোট স্যাম্পেল ডেটাবেস তৈরি ও ডিপ্লয় করবেন এবং Android অ্যাপ থেকে এটি অ্যাক্সেস করবেন।
পূর্বশর্ত
এই কুইকস্টার্ট সম্পূর্ণ করতে, আপনার নিম্নলিখিতগুলি প্রয়োজন হবে:
- নিম্নলিখিত টুল ইনস্টল করা আছে এমন এনভায়রনমেন্ট:
- Android Studio-এর সাম্প্রতিক ভার্সন।
- Firebase CLI। আপনার NPM ইনস্টল করা থাকলে, রান করুন:
অন্যথায়, ইনস্টলেশন সংক্রান্ত নির্দেশাবলীর জন্য ডকুমেন্ট দেখুন।npm install -g firebase-tools@latest
- Google অ্যাকাউন্ট।
টিউটোরিয়াল
| টিউটোরিয়াল | |
|---|---|
১. নতুন Android Studio প্রোজেক্ট তৈরি করুনAndroid Studio-তে, খালি অ্যাক্টিভিটি টেমপ্লেট সহ একটি নতুন প্রোজেক্ট তৈরি করুন। প্রোজেক্টের নাম Quickstart App এবং প্যাকেজের নাম com.example.quickstartapp দিন। |
|
২. আপনার 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.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:35.1.0")) implementation("com.google.firebase:firebase-dataconnect") } |
৩. Firebase প্রোজেক্ট শুরু করাAndroid Studio প্রোজেক্ট ডিরেক্টরিতে পরিবর্তন করুন এবং এতে একটি Firebase প্রোজেক্ট ইনিশিয়ালাইজ করুন। |
cd ~/QuickstartAppfirebase login --reauthfirebase init dataconnectপ্রম্পট করা হলে, নিম্নলিখিত বিকল্পগুলি বেছে নিন:
অন্যান্য সব প্রম্পটের জন্য ডিফল্ট ভ্যালু গ্রহণ করুন। এরপর, আপনার Firebase প্রোজেক্টে Android অ্যাপ রেজিস্টার করুন। firebase apps:create -a com.example.quickstartapp android android-quickstartfirebase apps:sdkconfig android -o app/google-services.json |
৪. 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 } } |
৫. আপনার স্কিমা ও অপারেশন ডিপ্লয় করুনআপনার ডেটাবেস স্কিমা, কোয়েরি বা মিউটেশনে যখনই কোনও পরিবর্তন করবেন, তখনই আপনাকে ডেটাবেসে আপনার পরিবর্তন কার্যকর করার জন্য সেগুলি ডিপ্লয় করতে হবে। |
|
৬. নমুনা ডেটা দিয়ে ডেটাবেস সিড করুনএই সিড ডেটা আপনাকে স্যাম্পেল অ্যাপ পরীক্ষা করার সময় দেখার জন্য কিছু দেবে। মনে রাখবেন যে এই ধাপে আপনি নির্বিচারে GraphQL কার্যকর করছেন, যা প্রশাসনিক কাজের জন্য অনুমোদিত। |
|
৭. Android ক্লায়েন্ট SDK জেনারেট করুনএই কমান্ডটি আপনার GraphQL সংজ্ঞা ব্যবহার করে একটি Android ক্লায়েন্ট SDK তৈরি করে বিশেষ করে আপনার ডেটাবেসের জন্য। আপনি এই লাইব্রেরি আপনার ক্লায়েন্ট অ্যাপে ব্যবহার করেন যাতে সব ডেটাবেস অপারেশন করা যায়। আপনি iOS-এর জন্য Swift, ওয়েবের জন্য JavaScript এবং Flutter সহ একাধিক প্ল্যাটফর্মের জন্য লাইব্রেরি তৈরি করতে পারেন,
|
public interface ExampleConnector : GeneratedConnector<ExampleConnector> { override val dataConnect: com.google.firebase.dataconnect.FirebaseDataConnect public val listMovies: ListMoviesQuery // ... } |
৮. একটি নমুনা Android ক্লায়েন্ট লিখুনএই সহজ Android অ্যাপের মাধ্যমে
লক্ষ্য করুন যে অ্যাপটি তৈরি করা SDK থেকে একটি ফাংশন ব্যবহার করে প্রয়োজনীয় ডেটাবেস অ্যাক্সেস সম্পূর্ণ করে। |
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) } } } } } } } |
৯. অ্যাপটি ব্যবহার করে দেখুনAndroid Studio থেকে, উদাহরণ হিসেবে দেখানো অ্যাপটি চালিয়ে দেখুন। |
|
পরবর্তী ধাপ
SQL Connect VS Code এক্সটেনশন ব্যবহার করে দেখুন
SQL Connect-এর সাহায্যে ডেভেলপ করার সময়, আমরা SQL Connect VS Code এক্সটেনশন ব্যবহার করার জন্য বিশেষভাবে সাজেস্ট করি। আপনি যদি আপনার প্রাথমিক ডেভেলপমেন্ট এনভায়রনমেন্ট হিসেবে Visual Studio Code ব্যবহার নাও করেন, এক্সটেনশনটি বেশ কিছু ফিচার প্রদান করে যা স্কিমা এবং অপারেশন ডেভেলপমেন্টকে আরও সুবিধাজনক করে তোলে:
- একটি GraphQL ল্যাঙ্গুয়েজ সার্ভার, যা SQL Connect-এর জন্য নির্দিষ্ট সিনট্যাক্স চেকিং এবং অটোকমপ্লিট সাজেশন প্রদান করে
- আপনার কোডের সাথে সামঞ্জস্যপূর্ণ CodeLens বোতাম যা আপনাকে আপনার স্কিমা ডেফিনিশন ফাইল থেকে ডেটা পড়তে এবং লিখতে এবং আপনার অপারেশন ডেফিনিশন থেকে কোয়েরি এবং মিউটেশন এক্সিকিউট করতে দেয়।
- আপনার GraphQL সংজ্ঞার সাথে আপনার জেনারেট করা SDK অটোমেটিক সিঙ্ক করে রাখুন।
- সহজ করা লোকাল এমুলেটর সেট-আপ।
- প্রোডাকশনে সহজ ডেপ্লয়মেন্ট।
লোকাল ডেভেলপমেন্টের জন্য SQL Connect এমুলেটর ব্যবহার করুন
যদিও এই টিউটোরিয়াল আপনাকে দেখিয়েছে কীভাবে সরাসরি প্রোডাকশনে SQL Connect স্কিমা ও অপারেশন ডেপ্লয় করতে হয়, আপনি হয়ত অ্যাপ ডেভেলপ করার সময় প্রোডাকশন ডেটাবেসে পরিবর্তন করতে চাইবেন না। এর পরিবর্তে, SQL Connect এমুলেটর সেট-আপ করুন এবং প্রোডাকশনের পরিবর্তে এর সাথে ডেভেলপমেন্টের কাজ করুন। এমুলেটর একটি লোকাল PGlite ইনস্ট্যান্স সেট-আপ করে যা Cloud SQL-এ লাইভ PostgreSQL ইনস্ট্যান্সের মতো কাজ করে।
আপনার অ্যাপের জন্য কীভাবে স্কিমা ও অপারেশন লিখতে হয় তা জানুন
SQL Connect-এর সাহায্যে অ্যাপ ডেভেলপ করার সময়, আপনার স্কিমা ও অপারেশনের ডিজাইন হল প্রথম ও সবচেয়ে গুরুত্বপূর্ণ ডেভেলপমেন্ট টাস্কগুলির মধ্যে একটি যা আপনাকে সম্পূর্ণ করতে হবে।
- Firebase কনসোলে Gemini হল একটি AI টুল যা আপনার অ্যাপের ন্যাচারাল ল্যাঙ্গুয়েজ বিবরণ থেকে SQL Connect স্কিমা তৈরি করতে পারে। এই টুলটি আপনাকে খুব দ্রুত শুরু করতে সাহায্য করতে পারে, বিশেষ করে যদি আপনি আগে কখনও রিলেশনাল ডেটাবেস নিয়ে কাজ না করে থাকেন।
- এছাড়াও, আপনি GraphQL ব্যবহার করে সরাসরি ডেটাবেস স্কিমা, কোয়েরি ও মিউটেশন লিখতে পারবেন। SQL Connect স্কিমা ডিজাইন করুন লিঙ্কে দেওয়া নির্দেশিকা দিয়ে শুরু করুন এবং তারপর অপারেশন কীভাবে লিখতে হয় তা জানতে ফলো-আপ পৃষ্ঠাগুলি দেখুন।
SQL Connect থেকে কীভাবে রিয়েল-টাইম আপডেট পাবেন তা জানুন
আপনি SQL Connect ব্যবহার করে এমন ক্লায়েন্ট অ্যাপ্লিকেশন লিখতে পারেন যা রিয়েল টাইমে পরিবর্তিত ডেটার প্রতিক্রিয়া দেয়। SQL Connect থেকে রিয়েল-টাইম আপডেট পান দেখুন।