Google is committed to advancing racial equity for Black communities. See how.
इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

Firebase Realtime Database के साथ Cloud Firestore का उपयोग करें

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

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

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

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

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

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

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

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

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

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

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

विचार करने के लिए प्रमुख अंतर

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

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

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

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

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

// /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')

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

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

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

विचार करने के लिए प्रमुख अंतर

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

Cloud Firestore में ऐतिहासिक डेटा ले जाएँ

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

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

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

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

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

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

Cloud Firestore में नया डेटा जोड़ें

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

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

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

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

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

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