এই কুইকস্টার্টে, আপনি শিখবেন কিভাবে একটি প্রোডাকশন এসকিউএল ইনস্ট্যান্স সহ আপনার অ্যাপ্লিকেশনে Firebase Data Connect তৈরি করতে হয়।
Firebase কনসোলে আপনি করবেন:
- আপনার Firebase প্রকল্পে Firebase Data Connect যোগ করুন।
- Firebase কনসোলে স্কিমা অ্যাসিস্ট ব্যবহার করে একটি অ্যাপের জন্য একটি স্কিমা তৈরি করুন এবং এটি স্থাপন করুন।
- আপনার অ্যাপের জন্য একটি ক্লাউড SQL দৃষ্টান্ত প্রদান করুন।
- Gemini Code Assist দিয়ে, নমুনা ডেটা দিয়ে আপনার ডাটাবেস তৈরি করুন।
তারপর, আপনার স্থানীয় উন্নয়ন পরিবেশে, আপনি করবেন:
- আপনার উত্পাদন উদাহরণের সাথে কাজ করার জন্য একটি ভিজ্যুয়াল স্টুডিও কোড এক্সটেনশন সহ একটি বিকাশ টুলিং সেট আপ করুন৷
- কনসোলে আপনার তৈরি করা সম্পদের সাথে আপনার স্থানীয় পরিবেশ সিঙ্ক করুন।
- আপনার অ্যাপে ব্যবহার করা হবে এমন একটি ক্যোয়ারী বাস্তবায়নে সাহায্য করার জন্য এক্সটেনশন টুলিং ব্যবহার করুন।
- দৃঢ়ভাবে টাইপ করা SDK তৈরি করুন এবং আপনার অ্যাপে ব্যবহার করুন।
- আপনার চূড়ান্ত স্কিমা, ক্যোয়ারী এবং ডেটা ক্লাউডে স্থাপন করুন ।
কনসোল প্রবাহ: আপনার স্কিমা ডিজাইন করুন এবং এটি আপনার ডাটাবেসে স্থাপন করুন
- যদি আপনি ইতিমধ্যেই না করে থাকেন, তাহলে একটি Firebase প্রকল্প তৈরি করুন৷
- Firebase কনসোলে , প্রজেক্ট যোগ করুন ক্লিক করুন, তারপর অন-স্ক্রীন নির্দেশাবলী অনুসরণ করুন।
- Firebase কনসোলের Data Connect বিভাগে নেভিগেট করুন।
- Get start with Gemini বোতামে ক্লিক করুন।
- প্রদর্শিত স্কিমা জেনারেটর ওয়ার্কফ্লো প্যানেলে, একটি অ্যাপ বর্ণনা করুন যাতে জেমিনি আপনার সাথে একটি GraphQL স্কিমা তৈরি করতে সহায়তা করতে পারে।
- GraphQL স্কিমা পর্যালোচনা করুন, তারপর আপগ্রেড এবং স্থাপনে ক্লিক করুন।
আপনার প্রকল্পকে ব্লেজ প্ল্যানে আপগ্রেড করুন। এটি আপনাকে PostgreSQL উদাহরণের জন্য একটি ক্লাউড SQL তৈরি করতে দেয়।
একটি নতুন ক্লাউড এসকিউএল ইনস্ট্যান্স তৈরি করুন নির্বাচন করুন। প্রদর্শিত ডায়ালগে, PostgreSQL ডাটাবেসের জন্য আপনার Cloud SQL-এর জন্য একটি অবস্থান এবং নামকরণ নির্বাচন করুন।
আপনার অ্যাপ স্কিমা সেই স্কিমার সাথে সম্পর্কিত একটি PostgreSQL ডাটাবেসের সাথে স্থাপন করা হয়েছে।
কনসোল ফ্লো: মিউটেশন তৈরি করতে এবং আপনার ডাটাবেস তৈরি করতে Firebase এ Gemini ব্যবহার করুন
পূর্ববর্তী ধাপটি সম্পূর্ণ করার মাধ্যমে, আপনি প্রাসঙ্গিক সত্তার ধরন সমন্বিত একটি Data Connect স্কিমা তৈরি করেছেন এবং এটিকে উৎপাদনে স্থাপন করেছেন, যার অর্থ সংশ্লিষ্ট সারণী সহ একটি PostgreSQL ডাটাবেস তৈরি ও স্থাপন করা হয়েছে।
আপনার ডাটাবেস পপুলেট করার জন্য, আপনি আপনার সারণীগুলির একটি আপডেট করতে এবং আপনার আপডেট নিশ্চিত করার জন্য একটি ক্যোয়ারী আপডেট করার জন্য একটি গ্রাফকিউএল মিউটেশন সংজ্ঞায়িত করতে আপনার প্রাকৃতিক ভাষা ইনপুটগুলি গ্রহণ করতে সাহায্য করতে Firebase এ Gemini ব্যবহার করতে পারেন।
ডেটা ট্যাব খুলুন।
সাহায্য করুন আমাকে লিখতে GraphQL pen_spark আইকনে ক্লিক করুন এবং প্রদর্শিত বাক্সে আপনার ইনপুট টাইপ করুন।
যেমন:
Add data for three sample products to my app.
জেনারেট এ ক্লিক করুন। মিউটেশন ফেরত দেওয়া হয়।
আউটপুট পর্যালোচনা করুন। যদি প্রয়োজন হয়, প্রম্পটটি পরিমার্জন করতে সম্পাদনা করুন ক্লিক করুন এবং পুনরায় জেনারেট ক্লিক করুন।
এরপরে, ডেটা এডিটরে মিউটেশন সন্নিবেশ করতে সন্নিবেশ ক্লিক করুন।
রান এ ক্লিক করুন।
যখন আপনি মিউটেশন চালান, ডেটা আপনার PostgreSQL ডাটাবেসের প্রযোজ্য টেবিলে লেখা হয়। আপনি সঞ্চিত ডেটা দেখতে কনসোলে একটি প্রশ্ন তৈরি করতে পারেন:
একটি ক্যোয়ারী তৈরি করতে GraphQL pen_spark লিখতে সাহায্য করুন ব্যবহার করে, পূর্ববর্তী পদক্ষেপগুলি পুনরাবৃত্তি করুন।
প্রদর্শিত বাক্সে, আপনার ইনপুট টাইপ করুন।
যেমন:
Query data for all sample products in my app.
জেনারেট এ ক্লিক করুন, তারপর রান করুন ।
স্থানীয় প্রবাহ: ডেভেলপমেন্ট টুলিং বেছে নিন
এখন যেহেতু আপনার স্থাপন করা ডাটাবেসে আপনার ডেটা আছে, আপনি আপনার স্থানীয় উন্নয়ন পরিবেশে আপনার স্কিমা এবং সংযোগকারীগুলির বিকাশ চালিয়ে যেতে পারেন।
প্রথমত, আপনাকে একটি স্থানীয় পরিবেশ সেট আপ করতে হবে। Data Connect আপনাকে ডেভেলপমেন্ট টুল ইনস্টল করার দুটি উপায় অফার করে।
স্থানীয় প্রবাহ: উন্নয়ন পরিবেশ সেট আপ করুন
- আপনার স্থানীয় প্রকল্পের জন্য একটি নতুন ডিরেক্টরি তৈরি করুন।
আপনার তৈরি করা নতুন ডিরেক্টরিতে নিম্নলিখিত কমান্ডটি চালান।
curl -sL https://firebase.tools/dataconnect | bash
এই স্ক্রিপ্টটি আপনার জন্য ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করার এবং একটি ব্রাউজার-ভিত্তিক IDE চালু করার চেষ্টা করে। এই IDE আপনাকে আপনার স্কিমা পরিচালনা করতে এবং আপনার অ্যাপ্লিকেশনে ব্যবহার করা প্রশ্ন এবং মিউটেশনগুলিকে সংজ্ঞায়িত করতে এবং দৃঢ়ভাবে টাইপ করা SDK তৈরি করতে সাহায্য করার জন্য একটি প্রাক-বান্ডেল করা VS কোড এক্সটেনশন সহ টুলিং প্রদান করে।
alias dataconnect='curl -sL https://firebase.tools/dataconnect | bash'
স্থানীয় প্রবাহ: আপনার প্রকল্প ডিরেক্টরি সেট আপ করুন
আপনার স্থানীয় প্রকল্প সেট আপ করতে, আপনার প্রকল্প ডিরেক্টরি শুরু করুন. IDE উইন্ডোতে, বাম দিকের প্যানেলে, Data Connect VS Code এক্সটেনশন UI খুলতে Firebase আইকনে ক্লিক করুন:
- সাইন ইন উইথ গুগল বোতামে ক্লিক করুন।
- একটি ফায়ারবেস প্রকল্প সংযুক্ত করুন বোতামে ক্লিক করুন এবং কনসোলে আপনি আগে তৈরি করা প্রকল্পটি নির্বাচন করুন৷
রান ফায়ারবেস ইনিট বোতামে ক্লিক করুন এবং প্রবাহটি সম্পূর্ণ করুন।
স্টার্ট এমুলেটর বোতামে ক্লিক করুন।
স্থানীয় প্রবাহ: স্থানীয় পরিবেশে আপনার স্কিমা খুঁজুন
পূর্ববর্তী বিভাগে firebase init
ধাপটি কনসোল থেকে আপনার স্থানীয় উন্নয়ন পরিবেশে স্থাপন করা স্কিমা সিঙ্ক করেছে।
আপনার স্কিমা খুঁজুন: এটি আপনার ফায়ারবেস প্রকল্প ডিরেক্টরিতে /dataconnect/schema/schema.gql
ফাইলে অবস্থিত।
স্থানীয় প্রবাহ: আপনার স্কিমার সাথে কাজ করুন
স্কিমার উদাহরণ: মুভি
Data Connect , গ্রাফকিউএল ক্ষেত্রগুলি কলামে ম্যাপ করা হয়। একটি Movie
টাইপের সম্ভবত id
, title
, imageUrl
এবং genre
থাকতে পারে। Data Connect আদিম ডেটা টাইপ String
এবং UUID
স্বীকৃতি দেয়।
# File `/dataconnect/schema/schema.gql`
# By default, a UUID id key will be created by default as primary key.
type Movie @table {
id: UUID! @default(expr: "uuidV4()")
title: String!
imageUrl: String!
genre: String
}
স্কিমা উদাহরণ 1:1 টেবিল: মুভি মেটাডেটা
মুভিগুলির সাথে, আপনি মুভি মেটাডেটা মডেল করতে পারেন।
উদাহরণস্বরূপ, schema.gql
এ, আপনি নিম্নলিখিত স্নিপেট যোগ করতে পারেন বা Gemini দ্বারা জেনারেট করা কোড পর্যালোচনা করতে পারেন।
# Movie - MovieMetadata is a one-to-one relationship
type MovieMetadata @table {
# This time, we omit adding a primary key because
# you can rely on Data Connect to manage it.
# @unique indicates a 1-1 relationship
movie: Movie! @unique
# movieId: UUID <- this is created by the above reference
rating: Float
releaseYear: Int
description: String
}
লক্ষ্য করুন যে movie
ক্ষেত্রটি একটি Movie
সাথে ম্যাপ করা হয়েছে। Data Connect বোঝে যে এটি Movie
এবং MovieMetadata
মধ্যে একটি সম্পর্ক এবং আপনার জন্য এই সম্পর্কটি পরিচালনা করবে।
ডকুমেন্টেশনে ডেটা কানেক্ট স্কিমা সম্পর্কে আরও জানুন
স্থানীয় প্রবাহ: আপনার টেবিলে আরও ডেটা যোগ করুন
IDE এডিটর প্যানেলে, আপনি /dataconnect/schema/schema.gql
এ গ্রাফকিউএল প্রকারের উপর কোডলেন্স বোতামগুলি উপস্থিত দেখতে পাবেন। ঠিক যেমন আপনি কনসোলে করেছিলেন, আপনি আপনার উত্পাদন ডাটাবেসে ডেটা যোগ করার জন্য একটি মিউটেশন তৈরি করতে পারেন।
স্থানীয়ভাবে কাজ করা, একটি টেবিলে ডেটা যোগ করতে:
-
schema.gql
এ, আপনার একটি প্রকারের জন্য ঘোষণার উপরে ডেটা যোগ করুন বোতামে ক্লিক করুন (যেমনMovie
,Product
,Account
আপনার অ্যাপের প্রকৃতির উপর নির্ভর করে)। - একটি নতুন ফাইল,
<type>_insert.qgl
, আপনার কাজের ডিরেক্টরিতে যোগ করা হয়েছে, যেমনMovie_insert.gql
বাProduct_insert.gql
। যে ধরনের জন্য ক্ষেত্রের মধ্যে হার্ড কোড তথ্য. - রান (উৎপাদন) বোতামে ক্লিক করুন।
- অন্যান্য টেবিলে একটি রেকর্ড যোগ করতে পূর্ববর্তী পদক্ষেপগুলি পুনরাবৃত্তি করুন।
দ্রুত তথ্য যাচাই করতে যোগ করা হয়েছে:
-
schema.gql
এ ফিরে, টাইপ ঘোষণার উপরে ডেটা পড়ুন বোতামে ক্লিক করুন। - ফলস্বরূপ
<type>_read.gql
ফাইলে, যেমনProduct_read.gql
, ক্যোয়ারী চালানোর জন্য রান (উৎপাদন) বোতামে ক্লিক করুন।
ডকুমেন্টেশনে ডেটা কানেক্ট মিউটেশন সম্পর্কে আরও জানুন
স্থানীয় প্রবাহ: আপনার ক্যোয়ারী সংজ্ঞায়িত করুন
এখন মজার অংশ, প্রশ্ন. একজন ডেভেলপার হিসেবে, আপনি GraphQL কোয়েরির পরিবর্তে SQL ক্যোয়ারী লিখতে অভ্যস্ত, তাই এটি প্রথমে কিছুটা আলাদা মনে হতে পারে। যাইহোক, GraphQL raw SQL এর চেয়ে অনেক বেশি পরিচ্ছন্ন এবং টাইপ-নিরাপদ। এবং আমাদের VS কোড এক্সটেনশন উন্নয়ন অভিজ্ঞতা সহজ করে.
একটি ক্যোয়ারী বাস্তবায়ন করতে, আপনি আমাদের CodeLens এর মাধ্যমে তৈরি করা একটি মানিয়ে নিতে পারেন:
-
/dataconnect/schema/schema.gql
এ, একটি প্রকারের উপরে (Movie
,Product
,Account
, ইত্যাদি), ডেটা পড়ুন CodeLens বোতামে ক্লিক করুন। - ফলস্বরূপ
<type>_read.gql
ফাইলে, রান (উৎপাদন) বোতামে ক্লিক করে প্রশ্নটি পরীক্ষা করুন। - কার্যকরী ক্যোয়ারীটি
/dataconnect/connector/queries.gql
এ কপি করুন। এই ক্যোয়ারীটি স্থাপনযোগ্য করতে, এটির জন্য একটি অনন্য নাম ঘোষণা করুন।
উদাহরণস্বরূপ, জেনেরিক উদাহরণে,
query_name
হতে পারেListMovies
, বাListProducts
, বাListAccounts
।
# File `/dataconnect/connector/queries.gql`
# @auth() directives control who can call each operation.
query <query_name> @auth(level: PUBLIC) {
<table_name> {
<field_1>
<field_2>
<field_3>
}
}
কাছাকাছি কোডলেন্স বোতাম ব্যবহার করে ক্যোয়ারীটি চালান।
ডকুমেন্টেশনে ডেটা কানেক্ট কোয়েরি সম্পর্কে আরও জানুন
স্থানীয় প্রবাহ: SDK তৈরি করুন
- অ্যাপে SDK যোগ করুন বোতামে ক্লিক করুন।
প্রদর্শিত ডায়ালগে, আপনার অ্যাপের জন্য কোড ধারণকারী একটি ডিরেক্টরি নির্বাচন করুন। Data Connect SDK কোড তৈরি হবে এবং সেখানে সেভ করা হবে।
আপনার অ্যাপ প্ল্যাটফর্ম নির্বাচন করুন, তারপর মনে রাখবেন যে আপনার নির্বাচিত ডিরেক্টরিতে SDK কোড অবিলম্বে তৈরি হয়েছে।
স্থানীয় প্রবাহ: উৎপাদনে আপনার স্কিমা এবং ক্যোয়ারী স্থাপন করুন
আপনি একটি উন্নয়ন পুনরাবৃত্তি মাধ্যমে কাজ করেছেন. এখন আপনি আপনার স্কিমা এবং কোয়েরিগুলিকে Firebase এক্সটেনশন UI বা Firebase CLI দিয়ে সার্ভারে স্থাপন করতে পারেন, ঠিক যেমন আপনি আপনার স্কিমার সাথে করেছিলেন৷
IDE উইন্ডোতে, VS Code Extension UI-তে, Deploy to Production বোতামে ক্লিক করুন।
একবার স্থাপন করা হলে, স্কিমা আপডেটগুলি যাচাই করতে Firebase কনসোলে যান (যদি প্রযোজ্য হয়) এবং অপারেশনগুলি ক্লাউডে আপলোড করা হয়েছে৷ আপনি স্কিমা দেখতে সক্ষম হবেন এবং কনসোলে আপনার ক্রিয়াকলাপগুলিও চালাতে পারবেন। PostgreSQL দৃষ্টান্তের জন্য ক্লাউড এসকিউএল এর চূড়ান্ত স্থাপন করা জেনারেটেড স্কিমা এবং ডেটা সহ আপডেট করা হবে।
ডকুমেন্টেশনে ডেটা কানেক্ট এমুলেটর ব্যবহার সম্পর্কে আরও জানুন
স্থানীয় প্রবাহ: একটি অ্যাপ থেকে আপনার ক্যোয়ারী কল করতে SDK ব্যবহার করুন
এখন আপনার আপডেট করা স্কিমা (যদি প্রযোজ্য হয়)। এবং আপনার ক্যোয়ারী প্রোডাকশনে স্থাপন করা হয়, আপনি আপনার ListMovies
ক্যোয়ারীতে একটি কল বাস্তবায়নের জন্য Data Connect জেনারেট করা SDK ব্যবহার করতে পারেন।
ওয়েব
- আপনার ওয়েব অ্যাপে Firebase যোগ করুন।
আপনার প্রতিক্রিয়া অ্যাপের প্রধান ফাইলে:
- আপনার তৈরি SDK আমদানি করুন
- কল Data Connect পদ্ধতি।
import React from 'react'; import ReactDOM from 'react-dom/client'; // Generated queries. // Update as needed with the path to your generated SDK. import { listMovies, ListMoviesData } from '@movie-app/movies'; function App() { const [movies, setMovies] = useState<ListMoviesData['movies']>([]); useEffect(() => { listMovies.then(res => setMovies(res.data)); }, []); return ( movies.map(movie => <h1>{movie.title}</h1>); ); } const root = ReactDOM.createRoot(document.getElementById('root')); root.render(<App />);
সুইফট
- আপনার iOS অ্যাপে Firebase যোগ করুন।
জেনারেট করা SDK ব্যবহার করতে, এটিকে Xcode-এ নির্ভরতা হিসেবে কনফিগার করুন।
Xcode শীর্ষ নেভিগেশন বারে, ফাইল > প্যাকেজ নির্ভরতা যোগ করুন > স্থানীয় যোগ করুন নির্বাচন করুন এবং তৈরি করা
Package.swift
ধারণকারী ফোল্ডারটি বেছে নিন।আপনার অ্যাপের প্রধান প্রতিনিধিতে:
- আপনার তৈরি SDK আমদানি করুন
- কল Data Connect পদ্ধতি।
import SwiftUI import FirebaseDataConnect // Generated queries. // Update as needed with the package name of your generated SDK. import <CONNECTOR-PACKAGE-NAME> let connector = DataConnect.moviesConnector struct ListMovieView: View { @StateObject private var queryRef = connector.listMovies.ref() var body: some View { VStack { Button { Task { do { try await refresh() } catch { print("Failed to refresh: \(error)") } } } label: { Text("Refresh") } // use the query results in a view ForEach(queryRef.data?.movies ?? []) { movie in Text(movie.title) } } } @MainActor func refresh() async throws { _ = try await queryRef.execute() } struct ContentView_Previews: PreviewProvider { static var previews: some View { ListMovieView() } }
কোটলিন অ্যান্ড্রয়েড
- আপনার Android অ্যাপে Firebase যোগ করুন।
জেনারেট করা SDK ব্যবহার করতে, Gradle-এ নির্ভরতা হিসেবে Data Connect কনফিগার করুন।
আপনার
app/build.gradle.kts
এplugins
এবংdependencies
আপডেট করুন।plugins { // Use whichever versions of these dependencies suit your application. // The versions shown here were the latest as of March 14, 2025. // Note, however, that the version of kotlin("plugin.serialization") must, // in general, match the version of kotlin("android"). id("com.android.application") version "8.9.0" id("com.google.gms.google-services") version "4.4.2" val kotlinVersion = "2.1.10" kotlin("android") version kotlinVersion kotlin("plugin.serialization") version kotlinVersion } dependencies { // Use whichever versions of these dependencies suit your application. // The versions shown here were the latest versions as of March 14, 2025. implementation("com.google.firebase:firebase-dataconnect:16.0.0-beta04") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1") implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3") // These dependencies are not strictly required, but will very likely be used // when writing modern Android applications. implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0") implementation("androidx.appcompat:appcompat:1.7.0") implementation("androidx.activity:activity-ktx:1.10.1") implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7") implementation("com.google.android.material:material:1.12.0") }
আপনার অ্যাপের প্রধান কার্যকলাপে:
- আপনার তৈরি SDK আমদানি করুন
- কল Data Connect পদ্ধতি।
import android.os.Bundle import android.widget.TextView import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import kotlinx.coroutines.launch private val connector = com.myapplication.MoviesConnector.instance class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val textView: TextView = findViewById(R.id.text_view) lifecycleScope.launch { lifecycle.repeatOnLifecycle(Lifecycle.State.STARTED) { val result = connector.listMovies.runCatching { execute { } } val newTextViewText = result.fold( onSuccess = { val titles = it.data.movies.map { it.title } "${titles.size} movies: " + titles.joinToString(", ") }, onFailure = { "ERROR: ${it.message}" } ) textView.text = newTextViewText } } } }
ফ্লাটার
- আপনার Flutter অ্যাপে Firebase যোগ করুন।
- flutterfire CLI
dart pub global activate flutterfire_cli
ইনস্টল করুন। -
flutterfire configure
চালান। - আপনার অ্যাপের প্রধান ফাংশনে:
- আপনার তৈরি SDK আমদানি করুন
- কল Data Connect পদ্ধতি।
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'firebase_options.dart';
// Generated queries.
// Update as needed with the path to your generated SDK
import 'movies_connector/movies.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Column(children: [
ConstrainedBox(
constraints: const BoxConstraints(maxHeight: 200),
child: FutureBuilder(
future: MoviesConnector.instance.listMovies().execute(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
return ListView.builder(
scrollDirection: Axis.vertical,
itemBuilder: (context, index) => Card(
child: Text(
snapshot.data!.data.movies[index].title,
)),
itemCount: snapshot.data!.data.movies.length,
);
}
return const CircularProgressIndicator();
}),
)
])));
}
}
পরবর্তী পদক্ষেপ
আপনার নিয়োজিত প্রকল্প পর্যালোচনা করুন এবং আরও সরঞ্জাম আবিষ্কার করুন:
- আপনার ডাটাবেসে ডেটা যোগ করুন, আপনার স্কিমাগুলি পরিদর্শন করুন এবং সংশোধন করুন এবং Firebase কনসোলে আপনার Data Connect পরিষেবা নিরীক্ষণ করুন।
ডকুমেন্টেশনে আরও তথ্য অ্যাক্সেস করুন। উদাহরণস্বরূপ, যেহেতু আপনি কুইকস্টার্ট সম্পূর্ণ করেছেন:
- স্কিমা, ক্যোয়ারী এবং মিউটেশন ডেভেলপমেন্ট সম্পর্কে আরও জানুন
- ক্লায়েন্ট SDK তৈরি করা এবং ওয়েব , অ্যান্ড্রয়েড , iOS এবং ফ্লটারের জন্য ক্লায়েন্ট কোড থেকে কলিং কোয়েরি এবং মিউটেশন সম্পর্কে জানুন।
এই কুইকস্টার্টে, আপনি শিখবেন কিভাবে একটি প্রোডাকশন এসকিউএল ইনস্ট্যান্স সহ আপনার অ্যাপ্লিকেশনে Firebase Data Connect তৈরি করতে হয়।
Firebase কনসোলে আপনি করবেন:
- আপনার Firebase প্রকল্পে Firebase Data Connect যোগ করুন।
- Firebase কনসোলে স্কিমা অ্যাসিস্ট ব্যবহার করে একটি অ্যাপের জন্য একটি স্কিমা তৈরি করুন এবং এটি স্থাপন করুন।
- আপনার অ্যাপের জন্য একটি ক্লাউড SQL দৃষ্টান্ত প্রদান করুন।
- Gemini Code Assist দিয়ে, নমুনা ডেটা দিয়ে আপনার ডাটাবেস তৈরি করুন।
তারপর, আপনার স্থানীয় উন্নয়ন পরিবেশে, আপনি করবেন:
- আপনার উত্পাদন উদাহরণের সাথে কাজ করার জন্য একটি ভিজ্যুয়াল স্টুডিও কোড এক্সটেনশন সহ একটি বিকাশ টুলিং সেট আপ করুন৷
- কনসোলে আপনার তৈরি করা সম্পদের সাথে আপনার স্থানীয় পরিবেশ সিঙ্ক করুন।
- আপনার অ্যাপে ব্যবহার করা হবে এমন একটি ক্যোয়ারী বাস্তবায়নে সাহায্য করার জন্য এক্সটেনশন টুলিং ব্যবহার করুন।
- দৃঢ়ভাবে টাইপ করা SDK তৈরি করুন এবং আপনার অ্যাপে ব্যবহার করুন।
- আপনার চূড়ান্ত স্কিমা, ক্যোয়ারী এবং ডেটা ক্লাউডে স্থাপন করুন ।
কনসোল প্রবাহ: আপনার স্কিমা ডিজাইন করুন এবং এটি আপনার ডাটাবেসে স্থাপন করুন
- যদি আপনি ইতিমধ্যেই না করে থাকেন, তাহলে একটি Firebase প্রকল্প তৈরি করুন৷
- Firebase কনসোলে , প্রজেক্ট যোগ করুন ক্লিক করুন, তারপর অন-স্ক্রীন নির্দেশাবলী অনুসরণ করুন।
- Firebase কনসোলের Data Connect বিভাগে নেভিগেট করুন।
- Get start with Gemini বোতামে ক্লিক করুন।
- প্রদর্শিত স্কিমা জেনারেটর ওয়ার্কফ্লো প্যানেলে, একটি অ্যাপ বর্ণনা করুন যাতে জেমিনি আপনার সাথে একটি GraphQL স্কিমা তৈরি করতে সহায়তা করতে পারে।
- GraphQL স্কিমা পর্যালোচনা করুন, তারপর আপগ্রেড এবং স্থাপনে ক্লিক করুন।
আপনার প্রকল্পকে ব্লেজ প্ল্যানে আপগ্রেড করুন। এটি আপনাকে PostgreSQL উদাহরণের জন্য একটি ক্লাউড SQL তৈরি করতে দেয়।
একটি নতুন ক্লাউড এসকিউএল ইনস্ট্যান্স তৈরি করুন নির্বাচন করুন। প্রদর্শিত ডায়ালগে, PostgreSQL ডাটাবেসের জন্য আপনার Cloud SQL-এর জন্য একটি অবস্থান এবং নামকরণ নির্বাচন করুন।
আপনার অ্যাপ স্কিমা সেই স্কিমার সাথে সম্পর্কিত একটি PostgreSQL ডাটাবেসের সাথে স্থাপন করা হয়েছে।
কনসোল ফ্লো: মিউটেশন তৈরি করতে এবং আপনার ডাটাবেস তৈরি করতে Firebase এ Gemini ব্যবহার করুন
পূর্ববর্তী ধাপটি সম্পূর্ণ করার মাধ্যমে, আপনি প্রাসঙ্গিক সত্তার ধরন সমন্বিত একটি Data Connect স্কিমা তৈরি করেছেন এবং এটিকে উৎপাদনে স্থাপন করেছেন, যার অর্থ সংশ্লিষ্ট সারণী সহ একটি PostgreSQL ডাটাবেস তৈরি ও স্থাপন করা হয়েছে।
আপনার ডাটাবেস পপুলেট করার জন্য, আপনি আপনার সারণীগুলির একটি আপডেট করতে এবং আপনার আপডেট নিশ্চিত করার জন্য একটি ক্যোয়ারী আপডেট করার জন্য একটি গ্রাফকিউএল মিউটেশন সংজ্ঞায়িত করতে আপনার প্রাকৃতিক ভাষা ইনপুটগুলি গ্রহণ করতে সাহায্য করতে Firebase এ Gemini ব্যবহার করতে পারেন।
ডেটা ট্যাব খুলুন।
সাহায্য করুন আমাকে লিখতে GraphQL pen_spark আইকনে ক্লিক করুন এবং প্রদর্শিত বাক্সে আপনার ইনপুট টাইপ করুন।
যেমন:
Add data for three sample products to my app.
জেনারেট এ ক্লিক করুন। মিউটেশন ফেরত দেওয়া হয়।
আউটপুট পর্যালোচনা করুন। যদি প্রয়োজন হয়, প্রম্পটটি পরিমার্জন করতে সম্পাদনা করুন ক্লিক করুন এবং পুনরায় জেনারেট ক্লিক করুন।
এরপরে, ডেটা এডিটরে মিউটেশন সন্নিবেশ করতে সন্নিবেশ ক্লিক করুন।
রান এ ক্লিক করুন।
যখন আপনি মিউটেশন চালান, ডেটা আপনার PostgreSQL ডাটাবেসের প্রযোজ্য টেবিলে লেখা হয়। আপনি সঞ্চিত ডেটা দেখতে কনসোলে একটি প্রশ্ন তৈরি করতে পারেন:
একটি ক্যোয়ারী তৈরি করতে GraphQL pen_spark লিখতে সাহায্য করুন ব্যবহার করে, পূর্ববর্তী পদক্ষেপগুলি পুনরাবৃত্তি করুন।
প্রদর্শিত বাক্সে, আপনার ইনপুট টাইপ করুন।
যেমন:
Query data for all sample products in my app.
জেনারেট এ ক্লিক করুন, তারপর রান করুন ।
স্থানীয় প্রবাহ: ডেভেলপমেন্ট টুলিং বেছে নিন
এখন যেহেতু আপনার স্থাপন করা ডাটাবেসে আপনার ডেটা আছে, আপনি আপনার স্থানীয় উন্নয়ন পরিবেশে আপনার স্কিমা এবং সংযোগকারীগুলির বিকাশ চালিয়ে যেতে পারেন।
প্রথমত, আপনাকে একটি স্থানীয় পরিবেশ সেট আপ করতে হবে। Data Connect আপনাকে ডেভেলপমেন্ট টুল ইনস্টল করার দুটি উপায় অফার করে।
স্থানীয় প্রবাহ: উন্নয়ন পরিবেশ সেট আপ করুন
- আপনার স্থানীয় প্রকল্পের জন্য একটি নতুন ডিরেক্টরি তৈরি করুন।
আপনার তৈরি করা নতুন ডিরেক্টরিতে নিম্নলিখিত কমান্ডটি চালান।
curl -sL https://firebase.tools/dataconnect | bash
এই স্ক্রিপ্টটি আপনার জন্য ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করার এবং একটি ব্রাউজার-ভিত্তিক IDE চালু করার চেষ্টা করে। এই IDE আপনাকে আপনার স্কিমা পরিচালনা করতে এবং আপনার অ্যাপ্লিকেশনে ব্যবহার করা প্রশ্ন এবং মিউটেশনগুলিকে সংজ্ঞায়িত করতে এবং দৃঢ়ভাবে টাইপ করা SDK তৈরি করতে সাহায্য করার জন্য একটি প্রাক-বান্ডেল করা VS কোড এক্সটেনশন সহ টুলিং প্রদান করে।
alias dataconnect='curl -sL https://firebase.tools/dataconnect | bash'
স্থানীয় প্রবাহ: আপনার প্রকল্প ডিরেক্টরি সেট আপ করুন
আপনার স্থানীয় প্রকল্প সেট আপ করতে, আপনার প্রকল্প ডিরেক্টরি শুরু করুন. IDE উইন্ডোতে, বাম দিকের প্যানেলে, Data Connect VS Code এক্সটেনশন UI খুলতে Firebase আইকনে ক্লিক করুন:
- সাইন ইন উইথ গুগল বোতামে ক্লিক করুন।
- একটি ফায়ারবেস প্রকল্প সংযুক্ত করুন বোতামে ক্লিক করুন এবং কনসোলে আপনি আগে তৈরি করা প্রকল্পটি নির্বাচন করুন৷
রান ফায়ারবেস ইনিট বোতামে ক্লিক করুন এবং প্রবাহটি সম্পূর্ণ করুন।
স্টার্ট এমুলেটর বোতামে ক্লিক করুন।
স্থানীয় প্রবাহ: স্থানীয় পরিবেশে আপনার স্কিমা খুঁজুন
পূর্ববর্তী বিভাগে firebase init
ধাপটি কনসোল থেকে আপনার স্থানীয় উন্নয়ন পরিবেশে স্থাপন করা স্কিমা সিঙ্ক করেছে।
আপনার স্কিমা খুঁজুন: এটি আপনার ফায়ারবেস প্রকল্প ডিরেক্টরিতে /dataconnect/schema/schema.gql
ফাইলে অবস্থিত।
স্থানীয় প্রবাহ: আপনার স্কিমার সাথে কাজ করুন
স্কিমার উদাহরণ: মুভি
Data Connect , গ্রাফকিউএল ক্ষেত্রগুলি কলামে ম্যাপ করা হয়। একটি Movie
টাইপের সম্ভবত id
, title
, imageUrl
এবং genre
থাকতে পারে। Data Connect আদিম ডেটা টাইপ String
এবং UUID
স্বীকৃতি দেয়।
# File `/dataconnect/schema/schema.gql`
# By default, a UUID id key will be created by default as primary key.
type Movie @table {
id: UUID! @default(expr: "uuidV4()")
title: String!
imageUrl: String!
genre: String
}
স্কিমা উদাহরণ 1:1 টেবিল: মুভি মেটাডেটা
মুভিগুলির সাথে, আপনি মুভি মেটাডেটা মডেল করতে পারেন।
উদাহরণস্বরূপ, schema.gql
এ, আপনি নিম্নলিখিত স্নিপেট যোগ করতে পারেন বা Gemini দ্বারা জেনারেট করা কোড পর্যালোচনা করতে পারেন।
# Movie - MovieMetadata is a one-to-one relationship
type MovieMetadata @table {
# This time, we omit adding a primary key because
# you can rely on Data Connect to manage it.
# @unique indicates a 1-1 relationship
movie: Movie! @unique
# movieId: UUID <- this is created by the above reference
rating: Float
releaseYear: Int
description: String
}
লক্ষ্য করুন যে movie
ক্ষেত্রটি একটি Movie
সাথে ম্যাপ করা হয়েছে। Data Connect বোঝে যে এটি Movie
এবং MovieMetadata
মধ্যে একটি সম্পর্ক এবং আপনার জন্য এই সম্পর্কটি পরিচালনা করবে।
ডকুমেন্টেশনে ডেটা কানেক্ট স্কিমা সম্পর্কে আরও জানুন
স্থানীয় প্রবাহ: আপনার টেবিলে আরও ডেটা যোগ করুন
IDE এডিটর প্যানেলে, আপনি /dataconnect/schema/schema.gql
এ গ্রাফকিউএল প্রকারের উপর কোডলেন্স বোতামগুলি উপস্থিত দেখতে পাবেন। ঠিক যেমন আপনি কনসোলে করেছিলেন, আপনি আপনার উত্পাদন ডাটাবেসে ডেটা যোগ করার জন্য একটি মিউটেশন তৈরি করতে পারেন।
স্থানীয়ভাবে কাজ করা, একটি টেবিলে ডেটা যোগ করতে:
-
schema.gql
এ, আপনার একটি প্রকারের জন্য ঘোষণার উপরে ডেটা যোগ করুন বোতামে ক্লিক করুন (যেমনMovie
,Product
,Account
আপনার অ্যাপের প্রকৃতির উপর নির্ভর করে)। - একটি নতুন ফাইল,
<type>_insert.qgl
, আপনার কাজের ডিরেক্টরিতে যোগ করা হয়েছে, যেমনMovie_insert.gql
বাProduct_insert.gql
। যে ধরনের জন্য ক্ষেত্রের মধ্যে হার্ড কোড তথ্য. - রান (উৎপাদন) বোতামে ক্লিক করুন।
- অন্যান্য টেবিলে একটি রেকর্ড যোগ করতে পূর্ববর্তী পদক্ষেপগুলি পুনরাবৃত্তি করুন।
দ্রুত তথ্য যাচাই করতে যোগ করা হয়েছে:
-
schema.gql
এ ফিরে, টাইপ ঘোষণার উপরে ডেটা পড়ুন বোতামে ক্লিক করুন। - ফলস্বরূপ
<type>_read.gql
ফাইলে, যেমনProduct_read.gql
, ক্যোয়ারী চালানোর জন্য রান (উৎপাদন) বোতামে ক্লিক করুন।
ডকুমেন্টেশনে ডেটা কানেক্ট মিউটেশন সম্পর্কে আরও জানুন
স্থানীয় প্রবাহ: আপনার ক্যোয়ারী সংজ্ঞায়িত করুন
এখন মজার অংশ, প্রশ্ন. একজন ডেভেলপার হিসেবে, আপনি GraphQL কোয়েরির পরিবর্তে SQL ক্যোয়ারী লিখতে অভ্যস্ত, তাই এটি প্রথমে কিছুটা আলাদা মনে হতে পারে। যাইহোক, GraphQL raw SQL এর চেয়ে অনেক বেশি পরিচ্ছন্ন এবং টাইপ-নিরাপদ। এবং আমাদের VS কোড এক্সটেনশন উন্নয়ন অভিজ্ঞতা সহজ করে.
একটি ক্যোয়ারী বাস্তবায়ন করতে, আপনি আমাদের CodeLens এর মাধ্যমে তৈরি করা একটি মানিয়ে নিতে পারেন:
-
/dataconnect/schema/schema.gql
এ, একটি প্রকারের উপরে (Movie
,Product
,Account
, ইত্যাদি), ডেটা পড়ুন CodeLens বোতামে ক্লিক করুন। - ফলস্বরূপ
<type>_read.gql
ফাইলে, রান (উৎপাদন) বোতামে ক্লিক করে প্রশ্নটি পরীক্ষা করুন। - কার্যকরী ক্যোয়ারীটি
/dataconnect/connector/queries.gql
এ কপি করুন। এই ক্যোয়ারীটি স্থাপনযোগ্য করতে, এটির জন্য একটি অনন্য নাম ঘোষণা করুন।
উদাহরণস্বরূপ, জেনেরিক উদাহরণে,
query_name
হতে পারেListMovies
, বাListProducts
, বাListAccounts
।
# File `/dataconnect/connector/queries.gql`
# @auth() directives control who can call each operation.
query <query_name> @auth(level: PUBLIC) {
<table_name> {
<field_1>
<field_2>
<field_3>
}
}
কাছাকাছি কোডলেন্স বোতাম ব্যবহার করে ক্যোয়ারীটি চালান।
ডকুমেন্টেশনে ডেটা কানেক্ট কোয়েরি সম্পর্কে আরও জানুন
স্থানীয় প্রবাহ: SDK তৈরি করুন
- অ্যাপে SDK যোগ করুন বোতামে ক্লিক করুন।
প্রদর্শিত ডায়ালগে, আপনার অ্যাপের জন্য কোড ধারণকারী একটি ডিরেক্টরি নির্বাচন করুন। Data Connect SDK কোড তৈরি হবে এবং সেখানে সেভ করা হবে।
আপনার অ্যাপ প্ল্যাটফর্ম নির্বাচন করুন, তারপর মনে রাখবেন যে আপনার নির্বাচিত ডিরেক্টরিতে SDK কোড অবিলম্বে তৈরি হয়েছে।
স্থানীয় প্রবাহ: উৎপাদনে আপনার স্কিমা এবং ক্যোয়ারী স্থাপন করুন
আপনি একটি উন্নয়ন পুনরাবৃত্তি মাধ্যমে কাজ করেছেন. এখন আপনি আপনার স্কিমা এবং কোয়েরিগুলিকে Firebase এক্সটেনশন UI বা Firebase CLI দিয়ে সার্ভারে স্থাপন করতে পারেন, ঠিক যেমন আপনি আপনার স্কিমার সাথে করেছিলেন৷
IDE উইন্ডোতে, VS Code Extension UI-তে, Deploy to Production বোতামে ক্লিক করুন।
একবার স্থাপন করা হলে, স্কিমা আপডেটগুলি যাচাই করতে Firebase কনসোলে যান (যদি প্রযোজ্য হয়) এবং অপারেশনগুলি ক্লাউডে আপলোড করা হয়েছে৷ আপনি স্কিমা দেখতে সক্ষম হবেন এবং কনসোলে আপনার ক্রিয়াকলাপগুলিও চালাতে পারবেন। PostgreSQL দৃষ্টান্তের জন্য ক্লাউড এসকিউএল এর চূড়ান্ত স্থাপন করা জেনারেটেড স্কিমা এবং ডেটা সহ আপডেট করা হবে।
ডকুমেন্টেশনে ডেটা কানেক্ট এমুলেটর ব্যবহার সম্পর্কে আরও জানুন
স্থানীয় প্রবাহ: একটি অ্যাপ থেকে আপনার ক্যোয়ারী কল করতে SDK ব্যবহার করুন
এখন আপনার আপডেট করা স্কিমা (যদি প্রযোজ্য হয়)। এবং আপনার ক্যোয়ারী প্রোডাকশনে স্থাপন করা হয়, আপনি আপনার ListMovies
ক্যোয়ারীতে একটি কল বাস্তবায়নের জন্য Data Connect জেনারেট করা SDK ব্যবহার করতে পারেন।
ওয়েব
- আপনার ওয়েব অ্যাপে Firebase যোগ করুন।
আপনার প্রতিক্রিয়া অ্যাপের প্রধান ফাইলে:
- আপনার তৈরি SDK আমদানি করুন
- কল Data Connect পদ্ধতি।
import React from 'react'; import ReactDOM from 'react-dom/client'; // Generated queries. // Update as needed with the path to your generated SDK. import { listMovies, ListMoviesData } from '@movie-app/movies'; function App() { const [movies, setMovies] = useState<ListMoviesData['movies']>([]); useEffect(() => { listMovies.then(res => setMovies(res.data)); }, []); return ( movies.map(movie => <h1>{movie.title}</h1>); ); } const root = ReactDOM.createRoot(document.getElementById('root')); root.render(<App />);
সুইফট
- আপনার iOS অ্যাপে Firebase যোগ করুন।
জেনারেট করা SDK ব্যবহার করতে, এটিকে Xcode-এ নির্ভরতা হিসেবে কনফিগার করুন।
Xcode শীর্ষ নেভিগেশন বারে, ফাইল > প্যাকেজ নির্ভরতা যোগ করুন > স্থানীয় যোগ করুন নির্বাচন করুন এবং তৈরি করা
Package.swift
ধারণকারী ফোল্ডারটি বেছে নিন।আপনার অ্যাপের প্রধান প্রতিনিধিতে:
- আপনার তৈরি SDK আমদানি করুন
- কল Data Connect পদ্ধতি।
import SwiftUI import FirebaseDataConnect // Generated queries. // Update as needed with the package name of your generated SDK. import <CONNECTOR-PACKAGE-NAME> let connector = DataConnect.moviesConnector struct ListMovieView: View { @StateObject private var queryRef = connector.listMovies.ref() var body: some View { VStack { Button { Task { do { try await refresh() } catch { print("Failed to refresh: \(error)") } } } label: { Text("Refresh") } // use the query results in a view ForEach(queryRef.data?.movies ?? []) { movie in Text(movie.title) } } } @MainActor func refresh() async throws { _ = try await queryRef.execute() } struct ContentView_Previews: PreviewProvider { static var previews: some View { ListMovieView() } }
কোটলিন অ্যান্ড্রয়েড
- আপনার Android অ্যাপে Firebase যোগ করুন।
জেনারেট করা SDK ব্যবহার করতে, Gradle-এ নির্ভরতা হিসেবে Data Connect কনফিগার করুন।
আপনার
app/build.gradle.kts
এplugins
এবংdependencies
আপডেট করুন।plugins { // Use whichever versions of these dependencies suit your application. // The versions shown here were the latest as of March 14, 2025. // Note, however, that the version of kotlin("plugin.serialization") must, // in general, match the version of kotlin("android"). id("com.android.application") version "8.9.0" id("com.google.gms.google-services") version "4.4.2" val kotlinVersion = "2.1.10" kotlin("android") version kotlinVersion kotlin("plugin.serialization") version kotlinVersion } dependencies { // Use whichever versions of these dependencies suit your application. // The versions shown here were the latest versions as of March 14, 2025. implementation("com.google.firebase:firebase-dataconnect:16.0.0-beta04") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1") implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3") // These dependencies are not strictly required, but will very likely be used // when writing modern Android applications. implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0") implementation("androidx.appcompat:appcompat:1.7.0") implementation("androidx.activity:activity-ktx:1.10.1") implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7") implementation("com.google.android.material:material:1.12.0") }
আপনার অ্যাপের প্রধান কার্যকলাপে:
- আপনার তৈরি SDK আমদানি করুন
- কল Data Connect পদ্ধতি।
import android.os.Bundle import android.widget.TextView import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import kotlinx.coroutines.launch private val connector = com.myapplication.MoviesConnector.instance class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val textView: TextView = findViewById(R.id.text_view) lifecycleScope.launch { lifecycle.repeatOnLifecycle(Lifecycle.State.STARTED) { val result = connector.listMovies.runCatching { execute { } } val newTextViewText = result.fold( onSuccess = { val titles = it.data.movies.map { it.title } "${titles.size} movies: " + titles.joinToString(", ") }, onFailure = { "ERROR: ${it.message}" } ) textView.text = newTextViewText } } } }
ফ্লাটার
- আপনার Flutter অ্যাপে Firebase যোগ করুন।
- flutterfire CLI
dart pub global activate flutterfire_cli
ইনস্টল করুন। -
flutterfire configure
চালান। - আপনার অ্যাপের প্রধান ফাংশনে:
- আপনার তৈরি SDK আমদানি করুন
- কল Data Connect পদ্ধতি।
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'firebase_options.dart';
// Generated queries.
// Update as needed with the path to your generated SDK
import 'movies_connector/movies.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Column(children: [
ConstrainedBox(
constraints: const BoxConstraints(maxHeight: 200),
child: FutureBuilder(
future: MoviesConnector.instance.listMovies().execute(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
return ListView.builder(
scrollDirection: Axis.vertical,
itemBuilder: (context, index) => Card(
child: Text(
snapshot.data!.data.movies[index].title,
)),
itemCount: snapshot.data!.data.movies.length,
);
}
return const CircularProgressIndicator();
}),
)
])));
}
}
পরবর্তী পদক্ষেপ
আপনার নিয়োজিত প্রকল্প পর্যালোচনা করুন এবং আরও সরঞ্জাম আবিষ্কার করুন:
- আপনার ডাটাবেসে ডেটা যোগ করুন, আপনার স্কিমাগুলি পরিদর্শন করুন এবং সংশোধন করুন এবং Firebase কনসোলে আপনার Data Connect পরিষেবা নিরীক্ষণ করুন।
ডকুমেন্টেশনে আরও তথ্য অ্যাক্সেস করুন। উদাহরণস্বরূপ, যেহেতু আপনি কুইকস্টার্ট সম্পূর্ণ করেছেন:
- স্কিমা, ক্যোয়ারী এবং মিউটেশন ডেভেলপমেন্ট সম্পর্কে আরও জানুন
- ক্লায়েন্ট SDK তৈরি করা এবং ওয়েব , অ্যান্ড্রয়েড , iOS এবং ফ্লটারের জন্য ক্লায়েন্ট কোড থেকে কলিং কোয়েরি এবং মিউটেশন সম্পর্কে জানুন।
এই কুইকস্টার্টে, আপনি শিখবেন কিভাবে একটি প্রোডাকশন এসকিউএল ইনস্ট্যান্স সহ আপনার অ্যাপ্লিকেশনে Firebase Data Connect তৈরি করতে হয়।
Firebase কনসোলে আপনি করবেন:
- আপনার Firebase প্রকল্পে Firebase Data Connect যোগ করুন।
- Firebase কনসোলে স্কিমা অ্যাসিস্ট ব্যবহার করে একটি অ্যাপের জন্য একটি স্কিমা তৈরি করুন এবং এটি স্থাপন করুন।
- আপনার অ্যাপের জন্য একটি ক্লাউড SQL দৃষ্টান্ত প্রদান করুন।
- Gemini Code Assist দিয়ে, নমুনা ডেটা দিয়ে আপনার ডাটাবেস তৈরি করুন।
তারপর, আপনার স্থানীয় উন্নয়ন পরিবেশে, আপনি করবেন:
- আপনার উত্পাদন উদাহরণের সাথে কাজ করার জন্য একটি ভিজ্যুয়াল স্টুডিও কোড এক্সটেনশন সহ একটি বিকাশ টুলিং সেট আপ করুন৷
- কনসোলে আপনার তৈরি করা সম্পদের সাথে আপনার স্থানীয় পরিবেশ সিঙ্ক করুন।
- আপনার অ্যাপে ব্যবহার করা হবে এমন একটি ক্যোয়ারী বাস্তবায়নে সাহায্য করার জন্য এক্সটেনশন টুলিং ব্যবহার করুন।
- দৃঢ়ভাবে টাইপ করা SDK তৈরি করুন এবং আপনার অ্যাপে ব্যবহার করুন।
- আপনার চূড়ান্ত স্কিমা, ক্যোয়ারী এবং ডেটা ক্লাউডে স্থাপন করুন ।
কনসোল প্রবাহ: আপনার স্কিমা ডিজাইন করুন এবং এটি আপনার ডাটাবেসে স্থাপন করুন
- যদি আপনি ইতিমধ্যেই না করে থাকেন, তাহলে একটি Firebase প্রকল্প তৈরি করুন৷
- Firebase কনসোলে , প্রজেক্ট যোগ করুন ক্লিক করুন, তারপর অন-স্ক্রীন নির্দেশাবলী অনুসরণ করুন।
- Firebase কনসোলের Data Connect বিভাগে নেভিগেট করুন।
- Get start with Gemini বোতামে ক্লিক করুন।
- প্রদর্শিত স্কিমা জেনারেটর ওয়ার্কফ্লো প্যানেলে, একটি অ্যাপ বর্ণনা করুন যাতে জেমিনি আপনার সাথে একটি GraphQL স্কিমা তৈরি করতে সহায়তা করতে পারে।
- GraphQL স্কিমা পর্যালোচনা করুন, তারপর আপগ্রেড এবং স্থাপনে ক্লিক করুন।
আপনার প্রকল্পকে ব্লেজ প্ল্যানে আপগ্রেড করুন। এটি আপনাকে PostgreSQL উদাহরণের জন্য একটি ক্লাউড SQL তৈরি করতে দেয়।
একটি নতুন ক্লাউড এসকিউএল ইনস্ট্যান্স তৈরি করুন নির্বাচন করুন। প্রদর্শিত ডায়ালগে, PostgreSQL ডাটাবেসের জন্য আপনার Cloud SQL-এর জন্য একটি অবস্থান এবং নামকরণ নির্বাচন করুন।
আপনার অ্যাপ স্কিমা সেই স্কিমার সাথে সম্পর্কিত একটি PostgreSQL ডাটাবেসের সাথে স্থাপন করা হয়েছে।
কনসোল ফ্লো: মিউটেশন তৈরি করতে এবং আপনার ডাটাবেস তৈরি করতে Firebase এ Gemini ব্যবহার করুন
পূর্ববর্তী ধাপটি সম্পূর্ণ করার মাধ্যমে, আপনি প্রাসঙ্গিক সত্তার ধরন সমন্বিত একটি Data Connect স্কিমা তৈরি করেছেন এবং এটিকে উৎপাদনে স্থাপন করেছেন, যার অর্থ সংশ্লিষ্ট সারণী সহ একটি PostgreSQL ডাটাবেস তৈরি ও স্থাপন করা হয়েছে।
আপনার ডাটাবেসটি পপুলেট করতে, আপনি আপনার আপডেটগুলি নিশ্চিত করতে আপনার একটি টেবিল এবং একটি ক্যোয়ারী আপডেট করতে গ্রাফকিউএল রূপান্তর সংজ্ঞায়িত করতে আপনার প্রাকৃতিক ভাষার ইনপুটগুলি গ্রহণ করতে আপনাকে Firebase জেমিনি ব্যবহার করতে পারেন।
ডেটা ট্যাব খুলুন।
আমাকে গ্রাফকিউএল পেন_স্পার্ক আইকন লিখতে সহায়তা করুন এবং প্রদর্শিত বাক্সে আপনার ইনপুটটি টাইপ করুন।
যেমন:
Add data for three sample products to my app.
জেনারেট এ ক্লিক করুন। মিউটেশন ফিরে আসে।
আউটপুট পর্যালোচনা করুন। যদি প্রয়োজন হয় তবে প্রম্পটটি পরিমার্জন করতে সম্পাদনা ক্লিক করুন এবং পুনরায় জেনারেট ক্লিক করুন।
এরপরে, ডেটা সম্পাদকের মধ্যে রূপান্তর সন্নিবেশ করতে সন্নিবেশ ক্লিক করুন।
রান এ ক্লিক করুন।
আপনি যখন মিউটেশনটি চালান, ডেটা আপনার পোস্টগ্রেসকিউএল ডাটাবেসে প্রযোজ্য টেবিলে লেখা হয়। সঞ্চিত ডেটা দেখতে আপনি কনসোলে একটি ক্যোয়ারী তৈরি করতে পারেন:
পূর্বের পদক্ষেপগুলি পুনরাবৃত্তি করুন, আমাকে ক্যোয়ারী তৈরি করতে গ্রাফকিউএল পেন_স্পার্ক লিখতে সহায়তা করুন।
প্রদর্শিত বাক্সে, আপনার ইনপুট টাইপ করুন।
যেমন:
Query data for all sample products in my app.
জেনারেট ক্লিক করুন, তারপরে চালান ।
স্থানীয় প্রবাহ: উন্নয়ন সরঞ্জাম নির্বাচন করুন
এখন আপনার মোতায়েন করা ডাটাবেসে আপনার ডেটা রয়েছে, আপনি আপনার স্থানীয় বিকাশের পরিবেশে আপনার স্কিমা এবং সংযোগকারীদের বিকাশ চালিয়ে যেতে পারেন।
প্রথমত, আপনাকে একটি স্থানীয় পরিবেশ স্থাপন করতে হবে। Data Connect আপনাকে উন্নয়ন সরঞ্জাম ইনস্টল করার দুটি উপায় সরবরাহ করে।
স্থানীয় প্রবাহ: উন্নয়ন পরিবেশ সেট আপ
- আপনার স্থানীয় প্রকল্পের জন্য একটি নতুন ডিরেক্টরি তৈরি করুন।
আপনার তৈরি নতুন ডিরেক্টরিটিতে নিম্নলিখিত কমান্ডটি চালান।
curl -sL https://firebase.tools/dataconnect | bash
এই স্ক্রিপ্টটি আপনার জন্য বিকাশের পরিবেশ স্থাপন এবং একটি ব্রাউজার-ভিত্তিক আইডিই চালু করার চেষ্টা করে। এই আইডিই আপনাকে আপনার স্কিমা পরিচালনা করতে এবং আপনার অ্যাপ্লিকেশনটিতে ব্যবহৃত হওয়া প্রশ্নগুলি এবং মিউটেশনগুলি সংজ্ঞায়িত করতে এবং দৃ strongly ়ভাবে টাইপ করা এসডিকে উত্পন্ন করতে সহায়তা করার জন্য একটি প্রাক-বান্ডিল ভিএস কোড এক্সটেনশন সহ সরঞ্জামগুলি সরবরাহ করে।
alias dataconnect='curl -sL https://firebase.tools/dataconnect | bash'
স্থানীয় প্রবাহ: আপনার প্রকল্প ডিরেক্টরি সেট আপ করুন
আপনার স্থানীয় প্রকল্প সেট আপ করতে, আপনার প্রকল্প ডিরেক্টরি শুরু করুন। আইডিই উইন্ডোতে, বাম-হাতের প্যানেলে, ডেটা সংযোগ বনাম কোড এক্সটেনশন ইউআই খুলতে ফায়ারবেস আইকনটি ক্লিক করুন:
- গুগল বোতামের সাহায্যে সাইন ইন ক্লিক করুন।
- সংযুক্ত একটি ফায়ারবেস প্রকল্প বোতামটি ক্লিক করুন এবং কনসোলে আপনি আগে তৈরি প্রকল্পটি নির্বাচন করুন।
রান ফায়ারবেস ইনিশ বোতামটি ক্লিক করুন এবং প্রবাহটি সম্পূর্ণ করুন।
শুরু এমুলেটর বোতামটি ক্লিক করুন।
স্থানীয় প্রবাহ: স্থানীয় পরিবেশে আপনার স্কিমা সন্ধান করুন
পূর্ববর্তী বিভাগের firebase init
পদক্ষেপটি আপনার স্থানীয় বিকাশের পরিবেশে কনসোল থেকে মোতায়েন করা স্কিমাটি সিঙ্ক করে।
আপনার স্কিমা সন্ধান করুন: এটি আপনার ফায়ারবেস প্রজেক্ট ডিরেক্টরিতে অবস্থিত, /dataconnect/schema/schema.gql
ফাইলটিতে।
স্থানীয় প্রবাহ: আপনার স্কিমা দিয়ে কাজ করুন
স্কিমা উদাহরণ: মুভি
Data Connect , গ্রাফকিউএল ক্ষেত্রগুলি কলামগুলিতে ম্যাপ করা হয়। একটি Movie
ধরণের সম্ভবত id
, title
, imageUrl
এবং genre
থাকবে। Data Connect আদিম ডেটা প্রকারের String
এবং UUID
স্বীকৃতি দেয়।
# File `/dataconnect/schema/schema.gql`
# By default, a UUID id key will be created by default as primary key.
type Movie @table {
id: UUID! @default(expr: "uuidV4()")
title: String!
imageUrl: String!
genre: String
}
স্কিমা উদাহরণ 1: 1 সারণী: মুভিমেটাডাটা
সিনেমাগুলির সাথে, আপনি মুভি মেটাডেটা মডেল করতে পারেন।
উদাহরণস্বরূপ, schema.gql
এ, আপনি জেমিনি দ্বারা উত্পাদিত নিম্নলিখিত স্নিপেট বা পর্যালোচনা কোড যুক্ত করতে পারেন।
# Movie - MovieMetadata is a one-to-one relationship
type MovieMetadata @table {
# This time, we omit adding a primary key because
# you can rely on Data Connect to manage it.
# @unique indicates a 1-1 relationship
movie: Movie! @unique
# movieId: UUID <- this is created by the above reference
rating: Float
releaseYear: Int
description: String
}
লক্ষ্য করুন যে movie
ক্ষেত্রটি এক ধরণের Movie
ম্যাপ করা হয়েছে। Data Connect বুঝতে পারে যে এটি Movie
এবং MovieMetadata
মধ্যে একটি সম্পর্ক এবং এটি আপনার জন্য এই সম্পর্কটি পরিচালনা করবে।
ডকুমেন্টেশনে ডেটা কানেক্ট স্কিমাস সম্পর্কে আরও জানুন
স্থানীয় প্রবাহ: আপনার টেবিলগুলিতে আরও ডেটা যুক্ত করুন
আইডিই সম্পাদক প্যানেলে, আপনি দেখতে পাচ্ছেন কোডেলেন বোতামগুলি /dataconnect/schema/schema.gql
-এ গ্রাফকিউএল প্রকারের উপরে উপস্থিত রয়েছে। আপনি যেমন কনসোলে করেছিলেন ঠিক তেমনই আপনি আপনার উত্পাদন ডাটাবেসে ডেটা যুক্ত করতে একটি মিউটেশন তৈরি করতে পারেন।
স্থানীয়ভাবে কাজ করা, একটি টেবিলে ডেটা যুক্ত করতে:
-
schema.gql
-এ, আপনার কোনও ধরণের (যেমন আপনার অ্যাপ্লিকেশনটির প্রকৃতির উপর নির্ভর করেMovie
,Product
,Account
, যেমন সিনেমা, পণ্য, অ্যাকাউন্ট) এর উপরে ডেটা যুক্ত করুন বোতামটি ক্লিক করুন। - একটি নতুন ফাইল,
<type>_insert.qgl
, আপনার কার্যকারী ডিরেক্টরিতে যেমনMovie_insert.gql
বাProduct_insert.gql
যুক্ত করা হয়েছে। এই ধরণের জন্য ক্ষেত্রগুলিতে হার্ড কোড ডেটা। - রান (উত্পাদন) বোতামটি ক্লিক করুন।
- অন্যান্য টেবিলগুলিতে রেকর্ড যুক্ত করতে পূর্ববর্তী পদক্ষেপগুলি পুনরাবৃত্তি করুন।
দ্রুত যাচাই করতে ডেটা যুক্ত করা হয়েছিল:
-
schema.gql
-এ ফিরে, প্রকার ঘোষণার উপরে পড়ার ডেটা বোতামটি ক্লিক করুন। - ফলস্বরূপ
<type>_read.gql
ফাইলের মতো, যেমনProduct_read.gql
, ক্যোয়ারীটি কার্যকর করতে রান (প্রোডাকশন) বোতামটি ক্লিক করুন।
ডকুমেন্টেশনে ডেটা সংযোগ মিউটেশন সম্পর্কে আরও জানুন
স্থানীয় প্রবাহ: আপনার ক্যোয়ারী সংজ্ঞায়িত করুন
এখন মজার অংশ, প্রশ্ন। একজন বিকাশকারী হিসাবে, আপনি গ্রাফকিউএল প্রশ্নের চেয়ে এসকিউএল কোয়েরি লেখার অভ্যস্ত, তাই এটি প্রথমে কিছুটা আলাদা বোধ করতে পারে। তবে গ্রাফকিউএল কাঁচা এসকিউএল এর চেয়ে অনেক বেশি টের এবং টাইপ-নিরাপদ। এবং আমাদের ভিএস কোড এক্সটেনশন বিকাশের অভিজ্ঞতা সহজ করে।
একটি ক্যোয়ারী বাস্তবায়নের জন্য, আপনি আমাদের কোডেলেনগুলির সাথে উত্পন্ন একটিকে মানিয়ে নিতে পারেন:
-
/dataconnect/schema/schema.gql
, কোনও প্রকারের উপরে (Movie
,Product
,Account
ইত্যাদি), ডেটা কোডেলেন্স বোতামটি পড়ুন । - ফলস্বরূপ
<type>_read.gql
ফাইলটিতে, রান (উত্পাদন) বোতামটি ক্লিক করে ক্যোয়ারী পরীক্ষা করুন। - কার্যকারিতা ক্যোয়ারীটি
/dataconnect/connector/queries.gql
কনকেক্টর/কিউইরিজ.জিকিউএল এ অনুলিপি করুন। এই ক্যোয়ারীকে মোতায়েনযোগ্য করতে, এর জন্য একটি অনন্য নাম ঘোষণা করুন।
উদাহরণস্বরূপ, নিম্নলিখিত জেনেরিক উদাহরণে,
query_name
ListMovies
, বাListProducts
, বাListAccounts
হতে পারে।
# File `/dataconnect/connector/queries.gql`
# @auth() directives control who can call each operation.
query <query_name> @auth(level: PUBLIC) {
<table_name> {
<field_1>
<field_2>
<field_3>
}
}
কাছাকাছি কোডেলেন বোতামটি ব্যবহার করে ক্যোয়ারীটি কার্যকর করুন।
ডকুমেন্টেশনে ডেটা কানেক্ট ক্যোয়ারী সম্পর্কে আরও জানুন
স্থানীয় প্রবাহ: এসডিকে উত্পন্ন করুন
- অ্যাপ বোতামে এসডিকে যুক্ত করুন ক্লিক করুন।
প্রদর্শিত সংলাপে, আপনার অ্যাপ্লিকেশনটির জন্য কোডযুক্ত একটি ডিরেক্টরি নির্বাচন করুন। Data Connect এসডিকে কোড তৈরি করা হবে এবং সেখানে সংরক্ষণ করা হবে।
আপনার অ্যাপ্লিকেশন প্ল্যাটফর্মটি নির্বাচন করুন, তারপরে নোট করুন যে এসডিকে কোডটি অবিলম্বে আপনার নির্বাচিত ডিরেক্টরিতে উত্পন্ন হয়।
স্থানীয় প্রবাহ: আপনার স্কিমা এবং ক্যোয়ারী উত্পাদনে স্থাপন করুন
আপনি একটি উন্নয়ন পুনরাবৃত্তির মাধ্যমে কাজ করেছেন। এখন আপনি আপনার স্কিমা দিয়ে যেমন করেছিলেন ঠিক তেমন ফায়ারবেস এক্সটেনশন ইউআই বা Firebase সিএলআই দিয়ে আপনার স্কিমা এবং প্রশ্নগুলি সার্ভারে স্থাপন করতে পারেন।
আইডিই উইন্ডোতে, ভিএস কোড এক্সটেনশন ইউআই -তে, উত্পাদন বোতামটি ডিপ্লয়ে ক্লিক করুন।
একবার মোতায়েন হয়ে গেলে, স্কিমা আপডেটগুলি যাচাই করতে Firebase কনসোলে যান (যদি প্রযোজ্য হয়) এবং অপারেশনগুলি মেঘে আপলোড করা হয়েছে। আপনার স্কিমাটি দেখতে সক্ষম হওয়া উচিত এবং কনসোলেও আপনার ক্রিয়াকলাপ চালানো উচিত। পোস্টগ্রেসকিউএল উদাহরণের জন্য ক্লাউড এসকিউএল এর চূড়ান্ত মোতায়েন উত্পন্ন স্কিমা এবং ডেটা সহ আপডেট করা হবে।
ডকুমেন্টেশনে ডেটা কানেক্ট এমুলেটর ব্যবহার সম্পর্কে আরও জানুন
স্থানীয় প্রবাহ: একটি অ্যাপ্লিকেশন থেকে আপনার ক্যোয়ারী কল করতে এসডিকে ব্যবহার করুন
এখন আপনার আপডেট হওয়া স্কিমা (প্রযোজ্য ক্ষেত্রে)। এবং আপনার ক্যোয়ারী প্রযোজনায় মোতায়েন করা হয়েছে, আপনি আপনার ListMovies
ক্যোয়ারিতে কল বাস্তবায়নের জন্য Data Connect তৈরি করা এসডিকে ব্যবহার করতে পারেন।
ওয়েব
- আপনার ওয়েব অ্যাপ্লিকেশনটিতে ফায়ারবেস যুক্ত করুন।
আপনার প্রতিক্রিয়া অ্যাপের মূল ফাইলটিতে:
- আপনার উত্পন্ন এসডিকে আমদানি করুন
- Data Connect পদ্ধতি কল করুন।
import React from 'react'; import ReactDOM from 'react-dom/client'; // Generated queries. // Update as needed with the path to your generated SDK. import { listMovies, ListMoviesData } from '@movie-app/movies'; function App() { const [movies, setMovies] = useState<ListMoviesData['movies']>([]); useEffect(() => { listMovies.then(res => setMovies(res.data)); }, []); return ( movies.map(movie => <h1>{movie.title}</h1>); ); } const root = ReactDOM.createRoot(document.getElementById('root')); root.render(<App />);
সুইফট
- আপনার আইওএস অ্যাপ্লিকেশনটিতে ফায়ারবেস যুক্ত করুন।
উত্পন্ন এসডিকে ব্যবহার করতে, এটি এক্সকোডে নির্ভরতা হিসাবে কনফিগার করুন।
এক্সকোড শীর্ষ নেভিগেশন বারে, ফাইল নির্বাচন করুন> প্যাকেজ নির্ভরতা যুক্ত করুন> স্থানীয় যুক্ত করুন এবং উত্পন্ন
Package.swift
ফোল্ডারটি চয়ন করুন।আপনার অ্যাপের প্রধান প্রতিনিধি:
- আপনার উত্পন্ন এসডিকে আমদানি করুন
- Data Connect পদ্ধতি কল করুন।
import SwiftUI import FirebaseDataConnect // Generated queries. // Update as needed with the package name of your generated SDK. import <CONNECTOR-PACKAGE-NAME> let connector = DataConnect.moviesConnector struct ListMovieView: View { @StateObject private var queryRef = connector.listMovies.ref() var body: some View { VStack { Button { Task { do { try await refresh() } catch { print("Failed to refresh: \(error)") } } } label: { Text("Refresh") } // use the query results in a view ForEach(queryRef.data?.movies ?? []) { movie in Text(movie.title) } } } @MainActor func refresh() async throws { _ = try await queryRef.execute() } struct ContentView_Previews: PreviewProvider { static var previews: some View { ListMovieView() } }
কোটলিন অ্যান্ড্রয়েড
- আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশনটিতে ফায়ারবেস যুক্ত করুন।
উত্পন্ন এসডিকে ব্যবহার করতে, Data Connect ।
আপনার
app/build.gradle.kts
plugins
এবংdependencies
আপডেট করুন।plugins { // Use whichever versions of these dependencies suit your application. // The versions shown here were the latest as of March 14, 2025. // Note, however, that the version of kotlin("plugin.serialization") must, // in general, match the version of kotlin("android"). id("com.android.application") version "8.9.0" id("com.google.gms.google-services") version "4.4.2" val kotlinVersion = "2.1.10" kotlin("android") version kotlinVersion kotlin("plugin.serialization") version kotlinVersion } dependencies { // Use whichever versions of these dependencies suit your application. // The versions shown here were the latest versions as of March 14, 2025. implementation("com.google.firebase:firebase-dataconnect:16.0.0-beta04") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1") implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3") // These dependencies are not strictly required, but will very likely be used // when writing modern Android applications. implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0") implementation("androidx.appcompat:appcompat:1.7.0") implementation("androidx.activity:activity-ktx:1.10.1") implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7") implementation("com.google.android.material:material:1.12.0") }
আপনার অ্যাপ্লিকেশনটির প্রধান ক্রিয়াকলাপে:
- আপনার উত্পন্ন এসডিকে আমদানি করুন
- Data Connect পদ্ধতি কল করুন।
import android.os.Bundle import android.widget.TextView import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import kotlinx.coroutines.launch private val connector = com.myapplication.MoviesConnector.instance class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val textView: TextView = findViewById(R.id.text_view) lifecycleScope.launch { lifecycle.repeatOnLifecycle(Lifecycle.State.STARTED) { val result = connector.listMovies.runCatching { execute { } } val newTextViewText = result.fold( onSuccess = { val titles = it.data.movies.map { it.title } "${titles.size} movies: " + titles.joinToString(", ") }, onFailure = { "ERROR: ${it.message}" } ) textView.text = newTextViewText } } } }
ফ্লাটার
- আপনার ফ্লটার অ্যাপে ফায়ারবেস যুক্ত করুন।
- ফ্লুটারফায়ার সিএলআই
dart pub global activate flutterfire_cli
ইনস্টল করুন। -
flutterfire configure
চালান। - আপনার অ্যাপের মূল ফাংশনে:
- আপনার উত্পন্ন এসডিকে আমদানি করুন
- Data Connect পদ্ধতি কল করুন।
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'firebase_options.dart';
// Generated queries.
// Update as needed with the path to your generated SDK
import 'movies_connector/movies.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Column(children: [
ConstrainedBox(
constraints: const BoxConstraints(maxHeight: 200),
child: FutureBuilder(
future: MoviesConnector.instance.listMovies().execute(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
return ListView.builder(
scrollDirection: Axis.vertical,
itemBuilder: (context, index) => Card(
child: Text(
snapshot.data!.data.movies[index].title,
)),
itemCount: snapshot.data!.data.movies.length,
);
}
return const CircularProgressIndicator();
}),
)
])));
}
}
পরবর্তী পদক্ষেপ
আপনার মোতায়েন করা প্রকল্পটি পর্যালোচনা করুন এবং আরও সরঞ্জামগুলি আবিষ্কার করুন:
- আপনার ডাটাবেসে ডেটা যুক্ত করুন, আপনার স্কিমাগুলি পরিদর্শন করুন এবং সংশোধন করুন এবং Firebase কনসোলে আপনার Data Connect পরিষেবাটি পর্যবেক্ষণ করুন।
ডকুমেন্টেশনে আরও তথ্য অ্যাক্সেস করুন। উদাহরণস্বরূপ, যেহেতু আপনি কুইকস্টার্টটি শেষ করেছেন:
- স্কিমা, ক্যোয়ারী এবং মিউটেশন বিকাশ সম্পর্কে আরও জানুন
- ক্লায়েন্ট এসডিকে উত্পন্ন করা এবং ওয়েব , অ্যান্ড্রয়েড , আইওএস এবং ফ্লুটারের ক্লায়েন্ট কোড থেকে প্রশ্ন এবং রূপান্তরগুলি কল করা সম্পর্কে শিখুন।