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

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

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

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

  • NPM के साथ Node.js एनवायरमेंट.
  • एक Google खाता.

ट्यूटोरियल

ट्यूटोरियल

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

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

  • नया Firebase प्रोजेक्ट बनाएं.
  • Gemini की मदद से स्कीमा न बनाएं. इस ट्यूटोरियल में, पहले से बने उदाहरण स्कीमा का इस्तेमाल किया जाएगा.
  • नया Cloud SQL इंस्टेंस बनाएं.
  • React टेंप्लेट बनाएं.
mkdir myproj ; cd myproj
npx -y firebase-tools@latest login --reauth
npx -y firebase-tools@latest init dataconnect

2. 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
  }
}

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

डेटाबेस के स्कीमा, क्वेरी या म्यूटेशन में बदलाव करने पर, आपको उन्हें डिप्लॉय करना होगा. इसके बाद ही, डेटाबेस पर आपके बदलाव लागू होंगे.

npx -y firebase-tools@latest deploy --only dataconnect

4. डेटाबेस में सैंपल डेटा जोड़ना

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

npx -y firebase-tools@latest \
         dataconnect:execute dataconnect/seed_data.gql

5. JavaScript क्लाइंट SDK जनरेट करना

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

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

npx -y firebase-tools@latest dataconnect:sdk:generate
Auto-generated React SDK (excerpt)
export interface ListMoviesData {
  movies: ({
    id: UUIDString;
    title: string;
    imageUrl: string;
    genre?: string | null;
  } & Movie_Key)[];
}

export function useListMovies(
  options?: useDataConnectQueryOptions&<ListMoviesData>
): UseDataConnectQueryResult&<ListMoviesData, undefined>;

6. वेब ऐप्लिकेशन सेट अप करना

अपने Firebase प्रोजेक्ट में नया वेब ऐप्लिकेशन जोड़ने के लिए, ये कमांड चलाएं.

npx -y firebase-tools@latest \
          apps:create web react-example
npx -y firebase-tools@latest \
          apps:sdkconfig web \
          -o web-app/src/firebase-config.json
cd web-app
npm i firebase \
            @tanstack/react-query \
            @tanstack-query-firebase/react

7. React क्लाइंट का सैंपल लिखना

web-app/src/App.jsx के कॉन्टेंट को इस आसान React ऐप्लिकेशन से बदलें.

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

import { initializeApp } from 'firebase/app';
import firebaseConfig from './firebase-config.json';
import {
  QueryClient,
  QueryClientProvider
} from '@tanstack/react-query';

import { useListMovies } from '@dataconnect/generated/react';
import './App.css';

const app = initializeApp(firebaseConfig);
const queryClient = new QueryClient();

function App() {
  return (
    <QueryClientProvider client={queryClient}>
      <Movies />
    </QueryClientProvider>
  );
}

function Movies() {
  const { isLoading, data } = useListMovies();
  if (isLoading) {
    return <h1>...</h1>
  }
  return (
    <>
      {data?.movies.map(
        movie => <h1 key={movie.id}>{movie.title}</h1>
      )}
    </>
  );
}

export default App;

8. वेब ऐप्लिकेशन आज़माना

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

npm run dev

अगले चरण

Data Connect VS Code एक्सटेंशन आज़माना

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

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

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

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

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

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

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