ফ্লাটার ব্যবহার করে ফায়ারবেস এসকিউএল কানেক্ট দিয়ে শুরু করুন

এই কুইকস্টার্টে, আপনি একটি ছোট নমুনা ডেটাবেস তৈরি ও স্থাপন করবেন এবং ফ্লাটার ফ্রন্টএন্ড থেকে এটি অ্যাক্সেস করবেন।

পূর্বশর্ত

এই কুইকস্টার্টটি সম্পন্ন করতে আপনার নিম্নলিখিত জিনিসগুলির প্রয়োজন হবে:

টিউটোরিয়াল

টিউটোরিয়াল

১. আপনার প্রকল্পটি শুরু করুন

একটি নতুন ডিরেক্টরি তৈরি করুন এবং এর মধ্যে একটি ফায়ারবেস প্রজেক্ট চালু করুন। অনুরোধ করা হলে, নিম্নলিখিত বিকল্পগুলি বেছে নিন:

  • একটি নতুন ফায়ারবেস প্রজেক্ট তৈরি করুন।
  • জেমিনি দিয়ে কোনো স্কিমা তৈরি করবেন না (এই টিউটোরিয়ালে, আপনি একটি আগে থেকে তৈরি উদাহরণ স্কিমা ব্যবহার করবেন)।
  • একটি নতুন ক্লাউড এসকিউএল ইনস্ট্যান্স তৈরি করুন।
  • একটি ফ্লাটার টেমপ্লেট তৈরি করুন।
mkdir myproj ; cd myproj
firebase login --reauth
firebase init dataconnect

২. উদাহরণস্বরূপ GraphQL সংজ্ঞাগুলো পর্যালোচনা করুন

SQL Connect এ, আপনি GraphQL ব্যবহার করে আপনার সমস্ত ডাটাবেস স্কিমা এবং অপারেশন সংজ্ঞায়িত করেন। আপনি যখন আপনার প্রজেক্টটি ইনিশিয়ালাইজ করেছিলেন, তখন Firebase CLI আপনাকে কাজ শুরু করার জন্য কিছু উদাহরণ ডেফিনিশন তৈরি করে দিয়েছিল।

dataconnect/schema/schema.gql (উদ্ধৃতি)
type Movie @table {
  title: String!
  imageUrl: String!
  genre: String
}

type MovieMetadata @table {
  movie: Movie! @unique
  rating: Float
  releaseYear: Int
  description: String
}
dataconnect/example/queries.gql (উদ্ধৃতাংশ)
query ListMovies @auth(level: PUBLIC) {
  movies {
    id
    title
    imageUrl
    genre
  }
}

৩. আপনার স্কিমা এবং অপারেশনগুলো স্থাপন করুন

যখনই আপনি আপনার ডাটাবেস স্কিমা, কোয়েরি বা মিউটেশনে কোনো পরিবর্তন করেন, ডাটাবেসে সেই পরিবর্তনগুলো কার্যকর হওয়ার জন্য আপনাকে অবশ্যই সেগুলো ডিপ্লয় করতে হবে।

firebase deploy --only dataconnect

৪. নমুনা ডেটা দিয়ে ডেটাবেসটি তৈরি করুন।

নমুনা অ্যাপটি পরীক্ষা করার সময় এই সিড ডেটা আপনাকে দেখার জন্য একটি ভিত্তি দেবে। উল্লেখ্য যে, এই ধাপে আপনি যথেচ্ছভাবে GraphQL কার্যকর করছেন, যা প্রশাসনিক কাজের জন্য অনুমোদিত।

firebase dataconnect:execute dataconnect/seed_data.gql

৫. একটি ডার্ট ক্লায়েন্ট SDK তৈরি করুন

এই কমান্ডটি আপনার GraphQL ডেফিনিশন ব্যবহার করে বিশেষভাবে আপনার ডাটাবেসের জন্য একটি ডার্ট লাইব্রেরি তৈরি করে। আপনার ক্লায়েন্ট অ্যাপে সমস্ত ডাটাবেস অপারেশন সম্পাদন করতে আপনি এই লাইব্রেরিটি ব্যবহার করেন।

connector.yaml এ ডেফিনিশন যোগ করার মাধ্যমে আপনি অ্যান্ড্রয়েডের জন্য কোটলিন, আইওএসের জন্য সুইফট এবং ওয়েবের জন্য জাভাস্ক্রিপ্ট সহ একাধিক প্ল্যাটফর্মের জন্য লাইব্রেরি তৈরি করতে পারেন।

firebase dataconnect:sdk:generate
স্বয়ংক্রিয়ভাবে তৈরি ডার্ট এসডিকে (উদ্ধৃতাংশ)
class ExampleConnector {
  ListMoviesVariablesBuilder listMovies() {
    return ListMoviesVariablesBuilder(dataConnect);
  }

  // ...
}

৬. একটি ফ্লাটার অ্যাপ তৈরি করুন

আপনার ফায়ারবেস প্রজেক্ট ব্যবহার করার জন্য ফ্লাটার অ্যাপটি সেট আপ করতে এই কমান্ডগুলো চালান।

flutterfire কমান্ডের নির্দেশ পেলে, আপনার পূর্বে তৈরি করা Firebase প্রজেক্টটি নির্বাচন করুন এবং যে প্ল্যাটফর্মগুলোকে টার্গেট করতে চান, সেগুলো বেছে নিন।

cd flutter_app
flutter pub add firebase_core firebase_data_connect
flutterfire configure

৭. একটি নমুনা ফ্লাটার ক্লায়েন্ট লিখুন

flutter_app/lib/main.dart ফাইলের বিষয়বস্তু এই সাধারণ ফ্লাটার অ্যাপটি দিয়ে প্রতিস্থাপন করুন।

লক্ষ্য করুন যে, অ্যাপটি তৈরি করা SDK-এর একটি ফাংশন ব্যবহার করে প্রয়োজনীয় ডাটাবেস অ্যাক্সেস সম্পন্ন করে।

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_data_connect/firebase_data_connect.dart';
import 'package:flutter/material.dart';
import 'package:flutter_app/dataconnect_generated/generated.dart';
import 'package:flutter_app/firebase_options.dart';

class MyApp extends StatelessWidget {
  late final Future<QueryResult<ListMoviesData, void>>
  _movieListFuture;

  MyApp({super.key}) {
    _movieListFuture = ExampleConnector.instance
        .listMovies()
        .execute();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: FutureBuilder(
        future: _movieListFuture,
        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 ?? 0,
            );
          }
          return const CircularProgressIndicator();
        },
      ),
    );
  }
}

Future<void> main() async {
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );
  runApp(MyApp());
}

৮. অ্যাপটি ব্যবহার করে দেখুন

উদাহরণ অ্যাপটি বাস্তবে দেখতে ডেভেলপমেন্ট সার্ভারটি চালু করুন।

flutter run

পরবর্তী পদক্ষেপ

SQL Connect VS Code এক্সটেনশনটি ব্যবহার করে দেখুন

SQL Connect ব্যবহার করে ডেভেলপ করার সময়, আমরা SQL Connect VS Code এক্সটেনশনটি ব্যবহার করার জন্য জোরালোভাবে সুপারিশ করি। এমনকি যদি আপনি আপনার প্রধান ডেভেলপমেন্ট এনভায়রনমেন্ট হিসেবে ভিজ্যুয়াল স্টুডিও কোড ব্যবহার নাও করেন, তবুও এই এক্সটেনশনটি এমন বেশ কিছু ফিচার প্রদান করে যা স্কিমা এবং অপারেশন ডেভেলপমেন্টকে আরও সুবিধাজনক করে তোলে:

  • একটি GraphQL ল্যাঙ্গুয়েজ সার্ভার, যা SQL Connect জন্য নির্দিষ্ট সিনট্যাক্স চেকিং এবং অটোকমপ্লিট সাজেশন প্রদান করে।
  • আপনার কোডের সাথে সংযুক্ত কোডলেন্স বাটন, যা আপনাকে আপনার স্কিমা ডেফিনিশন ফাইল থেকে ডেটা পড়তে ও লিখতে এবং আপনার অপারেশন ডেফিনিশন থেকে কোয়েরি ও মিউটেশন সম্পাদন করতে দেয়।
  • আপনার তৈরি করা SDK-গুলোকে আপনার GraphQL ডেফিনিশনগুলোর সাথে স্বয়ংক্রিয়ভাবে সিঙ্ক্রোনাইজ করে রাখুন।
  • সরলীকৃত স্থানীয় এমুলেটর সেটআপ।
  • প্রোডাকশনে স্থাপন প্রক্রিয়া সহজতর।

স্থানীয় ডেভেলপমেন্টের জন্য SQL Connect এমুলেটর ব্যবহার করুন

যদিও এই টিউটোরিয়ালটি আপনাকে দেখিয়েছে কিভাবে সরাসরি প্রোডাকশনে SQL Connect স্কিমা এবং অপারেশন ডেপ্লয় করতে হয়, আপনি সম্ভবত আপনার অ্যাপটি সক্রিয়ভাবে ডেভেলপ করার সময় আপনার প্রোডাকশন ডেটাবেসে কোনো পরিবর্তন করতে চাইবেন না। এর পরিবর্তে, SQL Connect এমুলেটর সেট আপ করুন এবং প্রোডাকশনের বদলে সেটির উপর আপনার ডেভেলপমেন্টের কাজ করুন। এমুলেটরটি একটি লোকাল PGlite ইনস্ট্যান্স তৈরি করে যা CloudSQL-এর একটি লাইভ Postgres ইনস্ট্যান্সের মতোই আচরণ করে।

আপনার অ্যাপের জন্য স্কিমা এবং অপারেশন কীভাবে লিখতে হয় তা শিখুন।

SQL Connect ব্যবহার করে অ্যাপ তৈরি করার সময়, আপনার স্কিমা এবং অপারেশনগুলির ডিজাইন করা হলো প্রথম এবং সবচেয়ে গুরুত্বপূর্ণ ডেভেলপমেন্ট কাজগুলোর মধ্যে একটি যা আপনাকে সম্পন্ন করতে হবে।

  • ফায়ারবেস কনসোলের জেমিনি হলো একটি এআই টুল যা আপনার অ্যাপের স্বাভাবিক ভাষার বর্ণনা থেকে SQL Connect স্কিমা তৈরি করতে পারে। এই টুলটি আপনাকে খুব দ্রুত কাজ শুরু করতে সাহায্য করতে পারে, বিশেষ করে যদি আপনি আগে কখনো রিলেশনাল ডেটাবেস নিয়ে কাজ না করে থাকেন।
  • বিকল্পভাবে, আপনি সরাসরি GraphQL ব্যবহার করে ডাটাবেস স্কিমা, কোয়েরি এবং মিউটেশন লিখতে পারেন। অপারেশন কীভাবে লিখতে হয় তা শিখতে 'Design SQL Connect schemas' পৃষ্ঠাটি থেকে শুরু করুন এবং পরবর্তী পৃষ্ঠাগুলিতে যান।