Flutter का इस्तेमाल करके, Firebase Data Connect का इस्तेमाल शुरू करना

इस क्विकस्टार्ट में, आपको एक छोटा सैंपल डेटाबेस बनाने और उसे डिप्लॉय करने का तरीका बताया जाएगा. साथ ही, इसे Flutter फ़्रंटएंड से ऐक्सेस करने का तरीका भी बताया जाएगा.

ज़रूरी शर्तें

इस क्विकस्टार्ट को पूरा करने के लिए, आपको इनकी ज़रूरत होगी:

  • ऐसा एनवायरमेंट जिसमें ये टूल इंस्टॉल हों:
  • Google खाता.

ट्यूटोरियल

ट्यूटोरियल

1. नया Firebase प्रोजेक्ट बनाना

इसके लिए, सबसे पहले Firebase कंसोल में एक नया Firebase प्रोजेक्ट बनाएं. इसके बाद, प्रोजेक्ट को Blaze प्लान पर अपग्रेड करें.

2. अपना प्रोजेक्ट शुरू करना

नई डायरेक्ट्री बनाएं और उसमें Firebase प्रोजेक्ट शुरू करें. जब आपसे पूछा जाए, तो यहां दिए गए विकल्प चुनें:

  • पिछले चरण में बनाया गया प्रोजेक्ट चुनें.
  • Gemini की मदद से स्कीमा न बनाएं. इस ट्यूटोरियल में, पहले से बने उदाहरण वाले स्कीमा का इस्तेमाल किया जाएगा.
  • नया Cloud SQL इंस्टेंस बनाएं.
  • Flutter टेंप्लेट बनाएं.
mkdir myproj ; cd myproj
firebase login --reauth
firebase init dataconnect

3. GraphQL की परिभाषाओं का उदाहरण देखना

Data 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
}
dataconnect/example/queries.gql (excerpt)
query ListMovies @auth(level: PUBLIC) {
  movies {
    id
    title
    imageUrl
    genre
  }
}

4. अपने स्कीमा और कार्रवाइयां डिप्लॉय करना

जब भी अपने डेटाबेस स्कीमा, क्वेरी या म्यूटेशन में बदलाव किए जाते हैं, तो आपको उन्हें डिप्लॉय करना होगा. ऐसा करने पर ही, डेटाबेस पर बदलाव लागू होंगे.

firebase deploy --only dataconnect

5. डेटाबेस में सैंपल डेटा डालना

इस सीड डेटा से, आपको सैंपल ऐप्लिकेशन की जांच करते समय कुछ डेटा दिखेगा. ध्यान दें कि इस चरण में, आपको मनमुताबिक GraphQL को लागू करना होगा. ऐसा एडमिन से जुड़े कामों के लिए किया जा सकता है.

firebase dataconnect:execute dataconnect/seed_data.gql

6. Dart क्लाइंट एसडीके जनरेट करना

यह कमांड, आपकी GraphQL परिभाषाओं का इस्तेमाल करके, खास तौर पर आपके डेटाबेस के लिए एक Dart लाइब्रेरी जनरेट करती है. इस लाइब्रेरी का इस्तेमाल, क्लाइंट ऐप्लिकेशन में सभी डेटाबेस ऑपरेशन करने के लिए किया जाता है.

connector.yaml में परिभाषाएं जोड़कर, कई प्लैटफ़ॉर्म के लिए लाइब्रेरी जनरेट की जा सकती हैं. जैसे, Android के लिए Kotlin, iOS के लिए Swift, और वेब के लिए JavaScript.

firebase dataconnect:sdk:generate
अपने-आप जनरेट हुआ Dart SDK (excerpt)
class ExampleConnector {
  ListMoviesVariablesBuilder listMovies() {
    return ListMoviesVariablesBuilder(dataConnect);
  }

  // ...
}

7. Flutter ऐप्लिकेशन सेट अप करना

अपने Firebase प्रोजेक्ट का इस्तेमाल करने के लिए, Flutter ऐप्लिकेशन को सेट अप करने के लिए इन कमांड को चलाएं.

flutterfire कमांड से प्रॉम्प्ट मिलने पर, पहले से बनाया गया Firebase प्रोजेक्ट चुनें. इसके बाद, वे प्लैटफ़ॉर्म चुनें जिन्हें आपको टारगेट करना है.

cd flutter_app
flutter pub add firebase_core firebase_data_connect
flutterfire configure

8. Flutter क्लाइंट का सैंपल लिखें

इस आसान Flutter ऐप्लिकेशन की मदद से, flutter_app/lib/main.dart के कॉन्टेंट को बदलें.

ध्यान दें कि ऐप्लिकेशन, जनरेट किए गए एसडीके के फ़ंक्शन का इस्तेमाल करके, ज़रूरी डेटाबेस ऐक्सेस करता है.

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());
}

9. ऐप्लिकेशन आज़माएं

उदाहरण ऐप्लिकेशन को काम करते हुए देखने के लिए, डेवलपमेंट सर्वर शुरू करें.

flutter run

अगले चरण

Visual Studio Code एक्सटेंशन आज़माएं

Data Connect का इस्तेमाल करके डेवलपमेंट करते समय, हमारा सुझाव है कि आप Visual Studio Code एक्सटेंशन का इस्तेमाल करें. अगर आपने Visual Studio Code को अपने प्राइमरी डेवलपमेंट एनवायरमेंट के तौर पर इस्तेमाल नहीं किया है, तो भी एक्सटेंशन कई ऐसी सुविधाएं देता है जिनसे स्कीमा और ऑपरेशन डेवलपमेंट को ज़्यादा आसानी से किया जा सकता है:

  • एक GraphQL लैंग्वेज सर्वर, जो Data Connect के लिए सिंटैक्स की जांच करने और ऑटोकंप्लीट के सुझाव देने की सुविधा देता है
  • आपके कोड की लाइन में CodeLens बटन होते हैं. इनकी मदद से, स्कीमा की परिभाषा वाली फ़ाइलों से डेटा पढ़ा और लिखा जा सकता है. साथ ही, ऑपरेशन की परिभाषाओं से क्वेरी और म्यूटेशन लागू किए जा सकते हैं.
  • जनरेट किए गए एसडीके को GraphQL की परिभाषाओं के साथ अपने-आप सिंक करके रखें.
  • लोकल एम्युलेटर को आसानी से सेट अप किया जा सकता है.
  • आसानी से प्रोडक्शन में डिप्लॉय करने की सुविधा.

लोकल डेवलपमेंट के लिए, Data Connect एम्युलेटर का इस्तेमाल करना

इस ट्यूटोरियल में, Data Connect स्कीमा और कार्रवाइयों को सीधे प्रोडक्शन में डिप्लॉय करने का तरीका बताया गया है. हालांकि, ऐप्लिकेशन डेवलप करते समय, आपको प्रोडक्शन डेटाबेस में बदलाव नहीं करने चाहिए. इसके बजाय, Data Connect एम्युलेटर सेट अप करें और प्रोडक्शन के बजाय, इस पर डेवलपमेंट का काम करें. यह एम्युलेटर, लोकल PGlite इंस्टेंस सेट अप करता है. यह CloudSQL पर मौजूद लाइव Postgres इंस्टेंस की तरह काम करता है.

अपने ऐप्लिकेशन के लिए स्कीमा और ऑपरेशन लिखने का तरीका जानें

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

  • Firebase कंसोल में Gemini एक एआई टूल है. यह आपके ऐप्लिकेशन के बारे में सामान्य भाषा में दी गई जानकारी से Data Connect स्कीमा जनरेट कर सकता है. इस टूल की मदद से, बहुत कम समय में काम शुरू किया जा सकता है. खास तौर पर, अगर आपने पहले कभी रिलेशनल डेटाबेस के साथ काम नहीं किया है.
  • इसके अलावा, GraphQL का इस्तेमाल करके सीधे तौर पर डेटाबेस स्कीमा, क्वेरी, और म्यूटेशन लिखे जा सकते हैं. डिज़ाइन Data Connect स्कीमा पेज से शुरू करें. इसके बाद, फ़ॉलो-अप पेजों पर जाकर, कार्रवाइयां लिखने का तरीका जानें.