फायरबेस रीयलटाइम डेटाबेस के साथ क्लाउड फायरस्टोर का उपयोग करें

आप अपने ऐप में फायरबेस रीयलटाइम डेटाबेस और क्लाउड फायरस्टोर दोनों का उपयोग कर सकते हैं, और अपनी आवश्यकताओं के अनुरूप प्रत्येक डेटाबेस समाधान के लाभों का लाभ उठा सकते हैं। उदाहरण के लिए, आप उपस्थिति के लिए रीयलटाइम डेटाबेस के समर्थन का लाभ उठाना चाह सकते हैं, जैसा कि बिल्ड प्रेजेंस इन क्लाउड फायरस्टोर में बताया गया है।

डेटाबेस के बीच अंतर के बारे में और जानें।

डेटा को क्लाउड फायरस्टोर पर ले जाना

यदि आपने निर्णय लिया है कि आप अपना कुछ डेटा रीयलटाइम डेटाबेस से क्लाउड फायरस्टोर में स्थानांतरित करना चाहते हैं, तो निम्नलिखित प्रवाह पर विचार करें। चूँकि प्रत्येक डेटाबेस की विशिष्ट आवश्यकताएँ और संरचनात्मक विचार होते हैं, इसलिए कोई स्वचालित माइग्रेशन पथ नहीं होता है। इसके बजाय, आप इस सामान्य प्रगति का अनुसरण कर सकते हैं:

  1. रीयलटाइम डेटाबेस से क्लाउड फायरस्टोर तक डेटा संरचना और सुरक्षा नियमों को मैप करें। रीयलटाइम डेटाबेस और क्लाउड फायरस्टोर दोनों फायरबेस प्रमाणीकरण पर निर्भर हैं, इसलिए आपको अपने ऐप के लिए उपयोगकर्ता प्रमाणीकरण को बदलने की आवश्यकता नहीं है। हालाँकि, सुरक्षा नियम और डेटा मॉडल अलग-अलग हैं और क्लाउड फायरस्टोर पर डेटा ले जाना शुरू करने से पहले उन भिन्नताओं को ध्यान से ध्यान में रखना महत्वपूर्ण है।

  2. ऐतिहासिक डेटा ले जाएँ. जैसे ही आप क्लाउड फायरस्टोर में अपनी नई डेटा संरचना स्थापित कर रहे हैं, आप मौजूदा डेटा को रीयलटाइम डेटाबेस से अपने नए क्लाउड फायरस्टोर इंस्टेंस में मैप और स्थानांतरित कर सकते हैं। हालाँकि, यदि आप अपने ऐप में दोनों डेटाबेस का उपयोग कर रहे हैं, तो आपको ऐतिहासिक डेटा को रीयलटाइम डेटाबेस से बाहर ले जाने की आवश्यकता नहीं है।

  3. वास्तविक समय में नए डेटा को फायरस्टोर पर मिरर करें। अपने नए क्लाउड फायरस्टोर डेटाबेस में नया डेटा लिखने के लिए क्लाउड फ़ंक्शंस का उपयोग करें क्योंकि यह रीयलटाइम डेटाबेस में जुड़ जाता है।

  4. माइग्रेट किए गए डेटा के लिए क्लाउड फायरस्टोर को अपना प्राथमिक डेटाबेस बनाएं। एक बार जब आप अपना कुछ डेटा माइग्रेट कर लें, तो अपने प्राथमिक डेटाबेस के रूप में क्लाउड फायरस्टोर का उपयोग करें और माइग्रेट किए गए डेटा के लिए अपने रीयलटाइम डेटाबेस का उपयोग कम करें। अपने ऐप के उन संस्करणों पर विचार करें जो अभी भी उस डेटा के लिए रीयलटाइम डेटाबेस से जुड़े हुए हैं और आप उनका समर्थन जारी रखने की योजना कैसे बनाते हैं।

सुनिश्चित करें कि आप रीयलटाइम डेटाबेस और क्लाउड फायरस्टोर दोनों की बिलिंग लागतों का हिसाब रखते हैं।

अपना डेटा मैप करें

रीयलटाइम डेटाबेस में डेटा को एक एकल पेड़ के रूप में संरचित किया जाता है, जबकि क्लाउड फायरस्टोर दस्तावेज़ों, संग्रहों और उपसंग्रहों के माध्यम से अधिक स्पष्ट डेटा पदानुक्रम का समर्थन करता है। यदि आप अपना कुछ डेटा रीयलटाइम डेटाबेस से क्लाउड फायरस्टोर में ले जाते हैं, तो आप अपने डेटा के लिए एक अलग आर्किटेक्चर पर विचार करना चाह सकते हैं।

विचार करने योग्य प्रमुख अंतर

यदि आप अपने मौजूदा रीयलटाइम डेटाबेस ट्री से डेटा को क्लाउड फायरस्टोर दस्तावेज़ों और संग्रहों में ले जाते हैं, तो डेटाबेस के बीच निम्नलिखित प्रमुख अंतरों को ध्यान में रखें जो क्लाउड फायरस्टोर में डेटा की संरचना को प्रभावित कर सकते हैं:

  • उथली क्वेरीज़ पदानुक्रमित डेटा संरचनाओं में अधिक लचीलापन प्रदान करती हैं।
  • जटिल क्वेरीज़ अधिक विवरणात्मकता प्रदान करती हैं और डुप्लिकेट डेटा की आवश्यकता को कम करती हैं।
  • क्वेरी कर्सर अधिक मजबूत पेजिनेशन प्रदान करते हैं।
  • लेन-देन के लिए अब आपके सभी डेटा के लिए एक सामान्य रूट की आवश्यकता नहीं है, और ये अधिक कुशल हैं।
  • रीयलटाइम डेटाबेस और क्लाउड फायरस्टोर के बीच बिलिंग लागत भिन्न होती है। कई मामलों में, क्लाउड फायरस्टोर रीयलटाइम डेटाबेस से अधिक महंगा हो सकता है, खासकर यदि आप कई छोटे ऑपरेशनों पर निर्भर हैं। अपने डेटाबेस पर संचालन की संख्या कम करने और अनावश्यक लेखन से बचने पर विचार करें। रीयलटाइम डेटाबेस और क्लाउड फायरस्टोर के बीच बिलिंग में अंतर के बारे में और जानें।

कार्रवाई में सर्वोत्तम अभ्यास

निम्नलिखित उदाहरण उन कुछ विचारों को दर्शाता है जो आप डेटाबेस के बीच अपना डेटा स्थानांतरित करते समय कर सकते हैं। आप रीयलटाइम डेटाबेस की तुलना में अधिक प्राकृतिक डेटा संरचनाओं के लिए उथले पढ़ने और बेहतर क्वेरी क्षमताओं का लाभ उठा सकते हैं।

एक सिटी गाइड ऐप पर विचार करें जो उपयोगकर्ताओं को दुनिया भर के शहरों में उल्लेखनीय स्थलों को खोजने में मदद करता है। चूंकि रीयलटाइम डेटाबेस में उथली रीडिंग का अभाव है, इसलिए आपको डेटा को दो शीर्ष-स्तरीय नोड्स में निम्नानुसार संरचना करना पड़ सकता है:

// /cities/$CITY_KEY
{
  name: "New York",
  population: 8000000,
  capital: False
}

// /city-landmark/$CITY_KEY/$LANDMARK_KEY
{
  name: "Empire State Building",
  category: "Architecture"
}

क्लाउड फायरस्टोर में उथली रीडिंग है, इसलिए संग्रह में दस्तावेज़ों के लिए क्वेरी करने से उपसंग्रह से डेटा नहीं आता है। नतीजतन, आप ऐतिहासिक जानकारी को उपसंग्रह में संग्रहीत कर सकते हैं:

// /cities/$CITY_ID
{
  name: "New York",
  population: 8000000,
  capital: False,
  landmarks: [... subcollection ...]
}

दस्तावेज़ों का अधिकतम आकार 1 एमबी है, जो कि नेस्टेड सूचियों के साथ दस्तावेज़ों को फुलाने के बजाय, प्रत्येक शहर के दस्तावेज़ को छोटा रखते हुए, स्थलों को उपसंग्रह के रूप में संग्रहीत करने का एक और कारण है।

क्लाउड फायरस्टोर की उन्नत क्वेरी क्षमताएं सामान्य एक्सेस पैटर्न के लिए डेटा को डुप्लिकेट करने की आवश्यकता को कम करती हैं। उदाहरण के लिए, सिटी गाइड ऐप में एक स्क्रीन पर विचार करें जो जनसंख्या के आधार पर सभी राजधानी शहरों को दिखाती है। रीयलटाइम डेटाबेस में, ऐसा करने का सबसे प्रभावी तरीका राजधानी शहरों की एक अलग सूची बनाए रखना है जो cities सूची से डेटा को डुप्लिकेट करता है, निम्नानुसार:

{
   cities: {
    // ...
   },

   capital-cities: {
     // ...
   }
}

क्लाउड फायरस्टोर में, आप जनसंख्या के क्रम में राजधानी शहरों की सूची को एक प्रश्न के रूप में व्यक्त कर सकते हैं:

db.collection('cities')
    .where('capital', '==', true)
    .orderBy('population')

क्लाउड फायरस्टोर डेटा मॉडल के बारे में और पढ़ें और अपने क्लाउड फायरस्टोर डेटाबेस को कैसे व्यवस्थित करें, इस पर अधिक विचारों के लिए हमारे समाधानों पर एक नज़र डालें।

अपना डेटा सुरक्षित करें

चाहे आप Android, Apple, या वेब क्लाइंट के लिए क्लाउड फायरस्टोर सुरक्षा नियमों का उपयोग कर रहे हों, या सर्वर के लिए आइडेंटिटी एक्सेस मैनेजमेंट (IAM) का उपयोग कर रहे हों, सुनिश्चित करें कि आप क्लाउड फायरस्टोर के साथ-साथ रियलटाइम डेटाबेस में भी अपना डेटा सुरक्षित कर रहे हैं। उपयोगकर्ता प्रमाणीकरण को दोनों डेटाबेस के लिए प्रमाणीकरण द्वारा नियंत्रित किया जाता है, इसलिए जब आप क्लाउड फायरस्टोर का उपयोग शुरू करते हैं तो आपको प्रमाणीकरण के अपने कार्यान्वयन को बदलने की आवश्यकता नहीं होती है।

विचार करने योग्य प्रमुख अंतर

  • मोबाइल और वेब एसडीके क्लाउड फायरस्टोर सुरक्षा नियमों का उपयोग करते हैं, जबकि सर्वर एसडीके डेटा सुरक्षित करने के लिए आइडेंटिटी एक्सेस मैनेजमेंट (आईएएम) का उपयोग करते हैं।
  • जब तक आप वाइल्डकार्ड का उपयोग नहीं करते, क्लाउड फायरस्टोर सुरक्षा नियम कैस्केड नहीं होते। दस्तावेज़ और संग्रह अन्यथा नियमों को प्राप्त नहीं करते हैं।
  • अब आपको डेटा को अलग से सत्यापित करने की आवश्यकता नहीं है (जैसा कि आपने रीयलटाइम डेटाबेस में किया था)।
  • क्लाउड फायरस्टोर किसी क्वेरी को निष्पादित करने से पहले नियमों की जांच करता है ताकि यह सुनिश्चित हो सके कि उपयोगकर्ता के पास क्वेरी द्वारा लौटाए गए सभी डेटा तक उचित पहुंच है।

ऐतिहासिक डेटा को क्लाउड फायरस्टोर पर ले जाएं

एक बार जब आप अपने डेटा और सुरक्षा संरचनाओं को क्लाउड फायरस्टोर के डेटा और सुरक्षा मॉडल में मैप कर लेते हैं, तो आप अपना डेटा जोड़ना शुरू कर सकते हैं। यदि आप अपने ऐप को रीयलटाइम डेटाबेस से क्लाउड फायरस्टोर पर ले जाने के बाद ऐतिहासिक डेटा को क्वेरी करने की योजना बना रहे हैं, तो अपने पुराने डेटा का निर्यात अपने नए क्लाउड फायरस्टोर डेटाबेस में जोड़ें। यदि आप अपने ऐप में रीयलटाइम डेटाबेस और क्लाउड फायरस्टोर दोनों का उपयोग करने की योजना बना रहे हैं, तो आप इस चरण को छोड़ सकते हैं।

पुराने डेटा के साथ नए डेटा को ओवरराइट करने से बचने के लिए, हो सकता है कि आप पहले अपना ऐतिहासिक डेटा जोड़ना चाहें। यदि आप दोनों डेटाबेस में एक साथ नया डेटा जोड़ते हैं, जैसा कि अगले चरण में चर्चा की गई है, तो सुनिश्चित करें कि आप क्लाउड फ़ंक्शंस द्वारा क्लाउड फायरस्टोर में जोड़े गए नए डेटा को प्राथमिकता दें।

ऐतिहासिक डेटा को क्लाउड फायरस्टोर में स्थानांतरित करने के लिए, इन चरणों का पालन करें:

  1. अपना डेटा रीयलटाइम डेटाबेस से निर्यात करें या हाल के बैकअप का उपयोग करें
    1. फ़ायरबेस कंसोल में रीयलटाइम डेटाबेस अनुभाग पर जाएँ।
    2. डेटा टैब से, अपने डेटाबेस के रूट-स्तरीय नोड का चयन करें और मेनू से निर्यात JSON का चयन करें।
  2. क्लाउड फायरस्टोर में अपना नया डेटाबेस बनाएं और अपना डेटा जोड़ें

    जब आप अपना कुछ डेटा क्लाउड फायरस्टोर पर ले जाएं तो निम्नलिखित रणनीतियों पर विचार करें:

    • एक कस्टम स्क्रिप्ट लिखें जो आपके डेटा को आपके लिए पोर्ट करती है। हालाँकि हम इस स्क्रिप्ट के लिए कोई टेम्पलेट पेश नहीं कर सकते, क्योंकि हर डेटाबेस की विशिष्ट ज़रूरतें होंगी, हमारे स्लैक चैनल या स्टैक ओवरफ्लो पर क्लाउड फायरस्टोर विशेषज्ञ आपकी स्क्रिप्ट की समीक्षा कर सकते हैं या आपकी विशिष्ट स्थिति के लिए सलाह दे सकते हैं।
    • क्लाउड फायरस्टोर पर सीधे डेटा लिखने के लिए सर्वर SDKs (Node.js, Java, Python, या Go) का उपयोग करें। सर्वर एसडीके स्थापित करने के निर्देशों के लिए, प्रारंभ करें देखें।
    • बड़े डेटा माइग्रेशन में तेजी लाने के लिए, बैचेड राइट्स का उपयोग करें और एक ही नेटवर्क अनुरोध में 500 ऑपरेशन तक भेजें।
    • क्लाउड फायरस्टोर दर सीमा के अंतर्गत रहने के लिए, प्रत्येक संग्रह के लिए संचालन को 500 राइट/सेकंड तक सीमित करें।

क्लाउड फायरस्टोर में नया डेटा जोड़ें

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

हर बार जब कोई ग्राहक रीयलटाइम डेटाबेस पर डेटा लिखता है तो क्लाउड फायरस्टोर में नया या बदलता डेटा लिखने के लिए एक फ़ंक्शन बनाएं। क्लाउड फ़ंक्शंस के लिए रीयलटाइम डेटाबेस ट्रिगर्स के बारे में और जानें।

माइग्रेट किए गए डेटा के लिए क्लाउड फायरस्टोर को अपना प्राथमिक डेटाबेस बनाएं

यदि आपने अपने कुछ डेटा के लिए क्लाउड फायरस्टोर को अपने प्राथमिक डेटाबेस के रूप में उपयोग करने का निर्णय लिया है, तो सुनिश्चित करें कि आपने जो भी डेटा-मिररिंग फ़ंक्शन सेट किया है, उसका हिसाब रखें और अपने क्लाउड फायरस्टोर सुरक्षा नियमों को मान्य करें।

  1. यदि आपने अपने डेटाबेस के बीच समानता बनाए रखने के लिए क्लाउड फ़ंक्शंस का उपयोग किया है, तो सुनिश्चित करें कि आप एक लूप में दोनों डेटाबेस में लेखन कार्यों की नकल नहीं कर रहे हैं। अपने फ़ंक्शन को एकल डेटाबेस में लिखने के लिए स्विच करें, या फ़ंक्शन को पूरी तरह से हटा दें और अभी भी रीयलटाइम डेटाबेस से जुड़े ऐप्स में माइग्रेट किए गए डेटा के लिए लेखन कार्यक्षमता को चरणबद्ध करना शुरू करें। आप अपने ऐप के लिए इसे कैसे संभालते हैं यह आपकी विशिष्ट आवश्यकताओं और आपके उपयोगकर्ताओं पर निर्भर करता है।

  2. सत्यापित करें कि आपका डेटा ठीक से सुरक्षित है। अपने क्लाउड फायरस्टोर सुरक्षा नियम या IAM सेटअप को सत्यापित करें।