Firebase डेटा कनेक्ट का इस्तेमाल शुरू करना

इस क्विकस्टार्ट में आपको यह पता चलेगा कि कैसे:

  • अपने Firebase प्रोजेक्ट में Firebase डेटा कनेक्ट जोड़ें.
  • प्रोडक्शन इंस्टेंस के साथ काम करने के लिए, Visual Studio कोड एक्सटेंशन के साथ डेवलपमेंट एनवायरमेंट सेट अप करें.
  • इसके बाद, हम आपको ये काम करने का तरीका बताएंगे:
    • ईमेल ऐप्लिकेशन के लिए स्कीमा बनाएं और उसे प्रोडक्शन में डिप्लॉय करें.
    • अपने स्कीमा के लिए क्वेरी और म्यूटेशन तय करें.
    • अपने फ़ाइनल प्रोटोटाइप को प्रोडक्शन में डिप्लॉय करें.

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

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

अपने प्रोजेक्ट में Data Connect जोड़ना और डेटा सोर्स बनाना

  1. अगर आपने पहले से कोई Firebase प्रोजेक्ट नहीं बनाया है, तो एक Firebase प्रोजेक्ट बनाएं.
    1. Firebase कंसोल में, प्रोजेक्ट जोड़ें पर क्लिक करें. इसके बाद, स्क्रीन पर दिए गए निर्देशों का पालन करें.
  2. अपने प्रोजेक्ट को Blaze प्लान पर अपग्रेड करें. इसकी मदद से, PostgreSQL के लिए Cloud SQL इंस्टेंस बनाया जा सकता है.

  3. Firebase कंसोल के Data Connect सेक्शन पर जाएं और प्रॉडक्ट सेटअप वर्कफ़्लो को फ़ॉलो करें.

  4. अपने CloudSQL for PostgreSQL डेटाबेस के लिए कोई जगह चुनें.

  5. बाद में पुष्टि करने के लिए, प्रोजेक्ट, सेवा, और डेटाबेस के नाम और आईडी नोट करें.

  6. बचे हुए सेटअप फ़्लो का पालन करें. इसके बाद, हो गया पर क्लिक करें.

डेवलपमेंट एनवायरमेंट चुनना और सेट अप करना

Data Connect में, प्रोटोटाइप बनाने के दो तरीके इस्तेमाल किए जा सकते हैं:

  • अगर आप Kotlin Android या वेब डेवलपर हैं, तो अपने Cloud SQL for PostgreSQL इंस्टेंस से कनेक्ट करते समय, स्थानीय तौर पर स्कीमा और कार्रवाइयों का प्रोटोटाइप बनाने के लिए, वीएस कोड डेवलपमेंट का इस्तेमाल करें.
  • अगर आप वेब डेवलपर हैं, तो आपके पास PostgreSQL के साथ पहले से कॉन्फ़िगर किए गए IDX टेंप्लेट, Data Connect एम्युलेटर के साथ वीएस कोड एक्सटेंशन, और आपके लिए सेट अप किए गए क्विकस्टार्ट कोड का इस्तेमाल करके, IDX Workspace में प्रोटोटाइप बनाने के लिए IDX Development का इस्तेमाल करने का विकल्प है.

वीएस कोड डेवलपमेंट

अगर आपको IDX का इस्तेमाल करने के बजाय स्थानीय तौर पर डेवलप करना है, तो Firebase वीएस कोड एक्सटेंशन सेट अप करें. इससे आपको अपने डेवलपमेंट को तुरंत फिर से शुरू करने में मदद मिलेगी.

  1. अपने लोकल प्रोजेक्ट के लिए नई डायरेक्ट्री बनाएं.
  2. बनाम कोड को नई डायरेक्ट्री में खोलें.
  3. Firebase स्टोरेज से, VSIX पैकेज के तौर पर बंडल किया गया एक्सटेंशन डाउनलोड करें.
  4. बनाम कोड में, व्यू मेन्यू से एक्सटेंशन चुनें.
  5. एक्सटेंशन पैनल के टाइटल बार में, मेन्यू आइकॉन more_horiz पर क्लिक करें. इसके बाद, VSIX से इंस्टॉल करें... को फ़ॉलो करें.

IDX डेवलपमेंट

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

Data Connect IDX का टेंप्लेट सेट अप करने के लिए:

  1. Project IDX साइट पर टेंप्लेट को ऐक्सेस करें.
  2. सेटअप फ़्लो का पालन करें.

इसके अलावा, Data Connect एम्युलेटर की मदद से, लोकल डेवलपमेंट के लिए एक लोकल PostgreSQL डेटाबेस इंस्टॉल किया जा सकता है. इस सेटअप के बारे में इस क्विकस्टार्ट गाइड के आखिर में बताया गया है.

अपना लोकल प्रोजेक्ट सेट अप करना

सामान्य निर्देशों का पालन करके सीएलआई इंस्टॉल करें.

इसके बाद, Firebase Data Connect एक्सपेरिमेंट चालू करें.

firebase experiments:enable dataconnect

अपनी प्रोजेक्ट डायरेक्ट्री सेट अप करना

अपना लोकल प्रोजेक्ट सेट अप करने के लिए, प्रोजेक्ट डायरेक्ट्री शुरू करें.

वीएस कोड के बाईं ओर मौजूद पैनल में, Firebase बनाम कोड एक्सटेंशन यूज़र इंटरफ़ेस (यूआई) खोलने के लिए, Firebase आइकॉन पर क्लिक करें.

Firebase एक्सटेंशन यूज़र इंटरफ़ेस (यूआई) में:

  1. पक्का करें कि आपने साइन इन किया हो.
  2. Google Cloud कंसोल का इस्तेमाल करके पुष्टि करें कि डेटाबेस प्रावधान के साथ-साथ, Data Connect का सेटअप फ़्लो पूरा हो गया है.
  3. Firebase init चलाएं बटन पर क्लिक करें.
  4. प्रॉम्प्ट के लिए, VS कोड के निचले पैनल में Terminal टैब देखें.
  5. इस डायरेक्ट्री में इस्तेमाल करने के लिए, डेटा कनेक्ट को सुविधा के तौर पर चुनें.
  6. जब आपसे कहा जाए, तब कंसोल में उस डेटा कनेक्ट प्रोजेक्ट के प्रोजेक्ट, सेवा, और डेटाबेस आईडी दें जिसे आपने पहले बनाया था.

यह फ़्लो, एक firebase.json और .firebaserc फ़ाइलें और dataconnect सबडायरेक्ट्री बनाएगा. इनमें आपकी लोकल वर्किंग डायरेक्ट्री में मौजूद ज़रूरी dataconnect.yaml और connector.yaml फ़ाइलें भी शामिल हैं.

Data Connect स्कीमा और क्वेरी बनाना

उपयोगकर्ताओं और ईमेल के मॉडल बनाने के लिए, ग्राफ़QL का इस्तेमाल शुरू करें. सोर्स को यहां अपडेट किया जाएगा:

  • /dataconnect/schema/schema.gql
  • /dataconnect/default-connector/queries.gql

स्कीमा बनाना शुरू करें

अपनी Firebase प्रोजेक्ट डायरेक्ट्री में, dataconnect फ़ोल्डर नोट करें. यहां आप ग्राफ़QL का इस्तेमाल करके, Cloud SQL डेटाबेस के लिए अपना डेटा मॉडल तय करते हैं.

/dataconnect/schema/schema.gql फ़ाइल में, ऐसा स्कीमा तय करें जिसमें उपयोगकर्ता और ईमेल शामिल हों.

उपयोगकर्ता

Data Connect में, ग्राफ़QL फ़ील्ड को कॉलम में मैप किया जाता है. उपयोगकर्ताओं के पास uid, name, और ईमेल address है. Data Connect कई बुनियादी डेटा टाइप की पहचान करता है: String और Date.

नीचे दिए गए स्निपेट को कॉपी करें या फ़ाइल में मौजूद इससे जुड़ी लाइनों की टिप्पणी हटाएं.

# File `/dataconnect/schema/schema.gql`

type User @table(key: "uid") {
   uid: String!
   name: String!
   address: String!
}

अगर कोई यूयूआईडी id कुंजी नहीं दी जाती है, तो Firebase Data Connect डिफ़ॉल्ट रूप से इसे जोड़ देगा. हालांकि, इस मामले में आपको मेरे uid को मुख्य कुंजी बनाना है, जो कि @table(key: "uid") डायरेक्टिव के ज़रिए किया जा सकता है.

ईमेल

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

# File `/dataconnect/schema/schema.gql`

type Email @table {
   subject: String!
   sent: Date!
   text: String!
   from: User!
}

ध्यान दें कि from फ़ील्ड को एक तरह के User के हिसाब से मैप किया गया है. Data Connect समझता है कि यह Email और User के बीच का संबंध है और वह आपके लिए इस संबंध को मैनेज करेगा.

अपने स्कीमा को प्रोडक्शन में डिप्लॉय करना

अगर अपने प्रोडक्शन डेटाबेस के साथ काम करने के लिए Firebase वीएस कोड एक्सटेंशन का इस्तेमाल किया जा रहा है, तो जारी रखने से पहले आपको स्कीमा डिप्लॉय करना होगा. अपने स्कीमा को अपने प्रोडक्शन डेटाबेस में डिप्लॉय करने के बाद, आपको कंसोल पर स्कीमा देखने की सुविधा मिल जाएगी.

  1. डिप्लॉय करने के लिए, Firebase बनाम कोड एक्सटेंशन का इस्तेमाल किया जा सकता है.
    • एक्सटेंशन यूज़र इंटरफ़ेस (यूआई) में, Firebase डेटा कनेक्ट पैनल के नीचे, डिप्लॉय करें पर क्लिक करें.
  2. इसके अलावा, आपके पास Firebase सीएलआई का इस्तेमाल करने का विकल्प भी है.

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

    • firebase dataconnect:sql:diff का इस्तेमाल करके स्कीमा में हुए बदलावों की समीक्षा करें
    • जब आप बदलावों से संतुष्ट हो जाएं, तो firebase dataconnect:sql:migrate से शुरू किए गए फ़्लो का इस्तेमाल करके, उन्हें लागू करें.

अपनी टेबल में डेटा जोड़ने के लिए, म्यूटेशन लागू करें

वीएस कोड एडिटर पैनल में, आपको /dataconnect/schema/schema.gql में GraphQL टाइप के ऊपर CodeLens बटन दिखेंगे.

डेवलपमेंट टाइम क्वेरी और म्यूटेशन

इन CodeLens बटन से जुड़ी बिना नाम वाली कार्रवाइयां, तेज़ और उपयोगी कार्रवाइयां हैं. इस मामले में, ये टेबल में डेटा जोड़ती हैं. Data Connect, यह बताने के लिए ग्राफ़QL म्यूटेशन का इस्तेमाल करता है कि डेटाबेस के साथ कैसे और कौन काम कर सकता है. इस बटन का इस्तेमाल करने से, तेज़ी से डेटा सीडिंग के लिए डेवलपमेंट टाइम ऑपरेशन बन जाता है.

आपने अपने स्कीमा को प्रोडक्शन में डिप्लॉय किया है. इसलिए, अपने बैकएंड पर ये कार्रवाइयां करने के लिए, जनरेट की गई फ़ाइलों में schema.gql में डेटा जोड़ें CodeLens बटन और Run (प्रोडक्शन) बटन का इस्तेमाल किया जा सकता है.

User और Email टेबल में रिकॉर्ड जोड़ने के लिए:

  1. schema.gql में, User टाइप की जानकारी के ऊपर मौजूद, डेटा जोड़ें बटन पर क्लिक करें.
  2. जनरेट होने वाली User_insert.gql फ़ाइल में, तीन फ़ील्ड के लिए हार्ड कोड डेटा.
  3. Run (प्रोडक्शन) बटन पर क्लिक करें.
    Firebase Data Connect के लिए कोड लेंस चलाने का बटन
  4. जनरेट किए गए Email_insert म्यूटेशन के हिसाब से, fromUid फ़ील्ड में आपके उपयोगकर्ता का uid डालकर, Email टेबल में रिकॉर्ड जोड़ने के लिए पिछला तरीका दोहराएं.

ईमेल की सूची बनाने के लिए क्वेरी लिखें

अब मज़ेदार बात है, क्वेरी. डेवलपर के तौर पर, आप ग्राफ़QL क्वेरी के बजाय SQL क्वेरी लिखने के आदी हैं, इसलिए शुरुआत में यह कुछ अलग महसूस हो सकता है. हालांकि, रॉ एसक्यूएल की तुलना में ग्राफ़क्यूएल ज़्यादा छोटा और टाइप-सुरक्षित है. साथ ही, हमारा वीएस कोड एक्सटेंशन, डेवलपमेंट के अनुभव को आसान बनाता है.

/dataconnect/default-connector/queries.gql फ़ाइल में बदलाव करना शुरू करें. अगर आपको सभी ईमेल चाहिए, तो इस तरह की क्वेरी का इस्तेमाल करें.

# File `/dataconnect/default-connector/queries.gql`

query ListEmails @auth(level: NO_ACCESS) {
  emails {
    id, subject, text, sent
    from {
      name
    }
  }
}

आस-पास मौजूद CodeLens बटन का इस्तेमाल करके क्वेरी एक्ज़ीक्यूट करें.

डेटाबेस के संबंधों को ग्राफ़ की तरह इस्तेमाल करने की क्षमता, यहां वाकई दिलचस्प सुविधा है. ईमेल में एक from फ़ील्ड होता है, जिससे उपयोगकर्ता के बारे में पता चलता है. इसलिए, इस फ़ील्ड में नेस्ट करके उपयोगकर्ता के बारे में जानकारी वापस पाई जा सकती है.

अपने प्रोटोटाइप को प्रोडक्शन में डिप्लॉय करें

आपने डेवलपमेंट की प्रक्रिया में कई बार काम किया है. अब स्कीमा की तरह, Firebase एक्सटेंशन यूज़र इंटरफ़ेस (यूआई) या Firebase सीएलआई की मदद से, सर्वर पर अपने स्कीमा, डेटा, और क्वेरी को डिप्लॉय किया जा सकता है.

अगर डिप्लॉय करने के लिए Firebase बनाम कोड एक्सटेंशन का इस्तेमाल किया जाता है, तो सभी को डिप्लॉय करें बटन पर क्लिक करें.

डिप्लॉयमेंट के बाद, कंसोल पर भी अपने ऑपरेशन देखे और चलाए जा सकेंगे. आपकी डेटा कनेक्ट सेवा, क्लाइंट के ऑपरेशन प्रोसेस करने के लिए तैयार होगी. Cloud SQL for PostgreSQL इंस्टेंस, डिप्लॉय किए गए फ़ाइनल स्कीमा और डेटा के साथ अपडेट किया जाएगा.

(ज़रूरी नहीं) PostgreSQL को स्थानीय तौर पर इंस्टॉल करना

PostgreSQL को स्थानीय तौर पर इंस्टॉल करना और उसे एम्युलेटर के साथ इंटिग्रेट करना, आपको पूरी तरह से लोकल डेवलपमेंट एनवायरमेंट में प्रोटोटाइप बनाने की सुविधा देता है.

आपके पास PostgreSQL का नया इंस्टेंस इंस्टॉल करने या किसी मौजूदा इंस्टेंस का इस्तेमाल करने का विकल्प है.

PostgreSQL इंस्टॉल करें

अपने प्लैटफ़ॉर्म पर दिए गए निर्देशों का पालन करके, PostgreSQL के वर्शन 15.x को इंस्टॉल करें.

इंस्टॉल करने के दौरान, होस्टनेम, पोर्ट, उपयोगकर्ता नाम, और पासवर्ड, और इनसे जुड़े पैरामीटर के आउटपुट को नोट करें.

अपने PostgreSQL इंस्टेंस से कनेक्ट करने के लिए, एम्युलेटर को इनकी ज़रूरत होगी:

  • ये सेटअप कॉन्फ़िगरेशन पैरामीटर
  • आपके dataconnect.yaml में मौजूद डेटाबेस का नाम और आपके लोकल इंस्टेंस में, इसी नाम से शुरू होने वाला डेटाबेस.

कनेक्शन स्ट्रिंग की मदद से अपने .firebaserc को अपडेट करें

अपनी .firebaserc फ़ाइल में, नीचे दी गई कुंजी में कनेक्शन स्ट्रिंग जोड़ने के लिए, अपने स्थानीय PostgreSQL कॉन्फ़िगरेशन की जानकारी का इस्तेमाल करें. इसमें, आपका स्थानीय PostgreSQL उपयोगकर्ता नाम और पासवर्ड शामिल है.

{
  "projects": {},
  ...,
  ...,
  "dataconnectEmulatorConfig": {
    "postgres": {
      "localConnectionString": "postgresql://postgresusername:postgrespassword@localhost:5432?sslmode=disable"
    }}
}

अपने लोकल PostgreSQL इंस्टेंस से कनेक्ट करें

यह कॉन्फ़िगरेशन पूरा करने के बाद, अपने लोकल डेटाबेस से कनेक्ट करने के लिए:

  1. वीएस कोड में, बाएं पैनल में मौजूद Firebase आइकॉन पर क्लिक करके, Firebase वीएस कोड एक्सटेंशन यूज़र इंटरफ़ेस (यूआई) खोलें.
  2. लोकल PostgreSQL से कनेक्ट करें बटन पर क्लिक करें.

अगले चरण