Firebase रीयल टाइम डेटाबेस के साथ Cloud Firestore का इस्तेमाल करना

आप अपने ऐप्लिकेशन में Firebase Realtime Database और Cloud Firestore, दोनों का इस्तेमाल कर सकते हैं और अपनी ज़रूरत के हिसाब से, डेटाबेस से जुड़े हर समाधान के फ़ायदों का इस्तेमाल करें. उदाहरण के लिए, आपके हो सकता है कि आप Realtime Database की मदद करना चाहें, जैसा कि यहां बताया गया है Cloud Firestore में मौजूदगी बढ़ाएं.

इसके बारे में ज़्यादा जानें डेटाबेस के बीच के अंतर को समझना.

डेटा को Cloud Firestore में ले जाया जा रहा है

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

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

  2. पुराने डेटा को किसी दूसरी जगह ले जाएं. Cloud Firestore में नया डेटा स्ट्रक्चर सेट अप करते समय, ये काम किए जा सकते हैं मैप करें और मौजूदा डेटा को Realtime Database से अपने नए Cloud Firestore में ले जाएं इंस्टेंस. हालांकि, अगर अपने ऐप्लिकेशन में दोनों डेटाबेस का इस्तेमाल किया जा रहा है, आपको Realtime Database से पुराना डेटा ले जाने की ज़रूरत नहीं है.

  3. रीयल टाइम में Firestore के लिए नए डेटा की मिररिंग करना. अपने नए Cloud Firestore में नया डेटा लिखने के लिए Cloud Functions का इस्तेमाल करें डेटाबेस तैयार हो जाता है. इसे Realtime Database में जोड़ा जाता है.

  4. माइग्रेट किए गए डेटा के लिए, Cloud Firestore को अपना मुख्य डेटाबेस बनाएं. कुछ डेटा माइग्रेट करने के बाद, Cloud Firestore का इस्तेमाल करें को प्राइमरी डेटाबेस के तौर पर सेट किया जा सकता है. साथ ही, माइग्रेशन के लिए Realtime Database का इस्तेमाल कम किया जा सकता है डेटा शामिल है. अपने ऐप्लिकेशन के उन वर्शन का इस्तेमाल करें जो अब भी Realtime Database.

पक्का करें कि आपने बिलिंग लागत को शामिल किया हो Realtime Database दोनों के लिए और Cloud Firestore.

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

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

ध्यान देने लायक मुख्य अंतर

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

  • शैलो क्वेरी, हैरारकी वाले डेटा स्ट्रक्चर में ज़्यादा विकल्प उपलब्ध कराती हैं.
  • कॉम्प्लेक्स क्वेरी ज़्यादा बारीकी से काम करती हैं और डुप्लीकेट क्वेरी की ज़रूरत को कम करती है डेटा शामिल है.
  • क्वेरी कर्सर की मदद से, पेजों को बेहतर तरीके से पेजों में बांटा जा सकता है.
  • ट्रांज़ैक्शन के लिए, अब आपके सभी डेटा के लिए एक कॉमन रूट की ज़रूरत नहीं है. किया जा सकता है.
  • बिलिंग शुल्क Realtime Database और Cloud Firestore के बीच अलग-अलग होता है. कई मामलों में, Cloud Firestore की कीमत Realtime Database से ज़्यादा हो सकती है, खासकर तब, जब आप कई छोटे कामों पर निर्भर हों. इन बातों पर ध्यान दें ऐसा करने से, आपके डेटाबेस पर ऑपरेशन की संख्या कम हो जाती है और ग़ैर-ज़रूरी लिखो. इन दोनों के बीच के अंतर के बारे में ज़्यादा जानें बिलिंग Realtime Database के बीच होगी और Cloud Firestore.

सबसे सही तरीके

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

शहर की जानकारी देने वाले इस ऐप्लिकेशन का इस्तेमाल करें. इससे लोग शहरों में मशहूर लैंडमार्क को आसानी से ढूंढ पाएंगे खोजों के उदाहरण दिखेंगे. Realtime Database में शैलो रीड नहीं होता है. इसलिए, हो सकता है कि आपको डेटा को दो टॉप-लेवल नोड में इस तरह व्यवस्थित करें:

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

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

Cloud Firestore में बहुत कम टेक्स्ट होता है. इसलिए, किसी कलेक्शन में मौजूद दस्तावेज़ों के लिए क्वेरी की जा रही है सब-कलेक्शन से डेटा नहीं लेता. इस वजह से लैंडमार्क स्टोर किया जा सकता है सब-कलेक्शन में जानकारी:

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

दस्तावेज़ों का साइज़ ज़्यादा से ज़्यादा 1 एमबी हो सकता है, जो कि स्टोर करने की एक और वजह है के आधार पर उप-संग्रह के रूप में, प्रत्येक शहर के दस्तावेज़ को छोटा रखने के बजाय, नेस्ट की गई सूचियों के साथ दस्तावेज़ों को बड़ा करना.

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

{
   cities: {
    // ...
   },

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

Cloud Firestore में, राजधानी शहरों की सूची क्रम से लगाई जा सकती है डेटा को एक क्वेरी के तौर पर डालें:

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

Cloud Firestore डेटा मॉडल के बारे में ज़्यादा पढ़ें और हमारे समाधान देखें, ताकि आप अपने Cloud Firestore डेटाबेस.

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

क्या आप Cloud Firestore Security Rules का इस्तेमाल इसके लिए कर रहे हैं: Android, Apple या वेब क्लाइंट या Identity ऐक्सेस मैनेजमेंट (IAM) का डेटा इकट्ठा करता है, तो पक्का करें कि Cloud Firestore में भी आपका डेटा सुरक्षित हो Realtime Database के रूप में. उपयोगकर्ता की पुष्टि करने की प्रक्रिया, दोनों डेटाबेस के लिए पुष्टि करने की सुविधा से मैनेज की जाती है इसलिए, पुष्टि की प्रक्रिया शुरू करने पर, आपको Cloud Firestore का इस्तेमाल करके.

ध्यान देने लायक मुख्य अंतर

  • मोबाइल और वेब SDK टूल, Cloud Firestore Security Rules का इस्तेमाल करते हैं, जबकि सर्वर SDK टूल, डेटा को सुरक्षित रखने के लिए आइडेंटिटी ऐक्सेस मैनेजमेंट (आईएएम) का इस्तेमाल करते हैं.
  • वाइल्डकार्ड का इस्तेमाल किए बिना, Cloud Firestore Security Rules कैस्केड नहीं करता है. दस्तावेज़ और कलेक्शन में किसी तरह का नियम शामिल नहीं होता है.
  • अब आपको डेटा की अलग से पुष्टि करने की ज़रूरत नहीं है (जैसा कि आपने Realtime Database में किया था).
  • Cloud Firestore क्वेरी को लागू करने से पहले नियमों की जांच करता है, ताकि यह पक्का किया जा सके कि कि उपयोगकर्ता के पास क्वेरी से मिले सभी डेटा के लिए सही ऐक्सेस है.

पुराने डेटा को Cloud Firestore में ले जाएं

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

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

पुराने डेटा को Cloud Firestore पर माइग्रेट करने के लिए, यह तरीका अपनाएं:

  1. Realtime Database से अपना डेटा एक्सपोर्ट करें या हाल ही के बैकअप का इस्तेमाल करें.
    1. YouTube Studio के Realtime Database सेक्शन Firebase कंसोल में.
    2. डेटा टैब से, अपने डेटाबेस का रूट-लेवल नोड चुनें और मेन्यू से JSON एक्सपोर्ट करें.
  2. Cloud Firestore में अपना नया डेटाबेस बनाएं और अपना डेटा जोड़ें.

    अपना कुछ डेटा Cloud Firestore में ट्रांसफ़र करते समय, ये रणनीतियां अपनाएं:

    • एक कस्टम स्क्रिप्ट लिखें जो आपके लिए आपका डेटा पोर्ट करती है. हम ऐसा नहीं दे सकते इस स्क्रिप्ट के लिए एक टेंप्लेट है, क्योंकि हर डेटाबेस की ज़रूरतें अलग होती हैं, हमारे Slack चैनल पर Cloud Firestore विशेषज्ञ या Stack Overflow पर आपकी स्क्रिप्ट पढ़ सकता है या खास तौर पर आपके लिए सलाह दे सकता है.
    • सीधे डेटा लिखने के लिए सर्वर SDK टूल (Node.js, Java, Python या Go) इस्तेमाल करना Cloud Firestore तक. सर्वर SDK टूल सेट अप करने के निर्देश पाने के लिए, यहां देखें शुरू करें.
    • बड़े डेटा माइग्रेशन में तेज़ी लाने के लिए, बैच किए गए लेख और एक ही नेटवर्क अनुरोध में 500 ऑपरेशन तक भेजें.
    • Cloud Firestore की तय सीमा से कम में बने रहने के लिए, हर कलेक्शन के लिए, ऑपरेशन को 500 राइट/सेकंड तक सीमित करें.

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

अपने डेटाबेस के बीच समानता बनाए रखने के लिए, दोनों डेटाबेस में नया डेटा जोड़ें रीयलटाइम रिपोर्ट करता है. Cloud Firestore के लिए राइट ट्रिगर करने के लिए Cloud Functions का इस्तेमाल करें जब भी कोई क्लाइंट Realtime Database को लिखता है. पक्का करें कि Cloud Firestore किसी भी राइट के बजाय, Cloud Functions से आने वाले नए डेटा को प्राथमिकता देता है आप अपने पुराने डेटा माइग्रेशन से हासिल कर रहे हैं.

Cloud Firestore में नया डेटा लिखने या बदलने वाला फ़ंक्शन बनाने के लिए जब भी कोई क्लाइंट Realtime Database पर डेटा लिखता है. इसके बारे में ज़्यादा जानें Cloud Functions के लिए Realtime Database ट्रिगर.

माइग्रेट किए गए डेटा के लिए, Cloud Firestore को अपना मुख्य डेटाबेस बनाएं

अगर आपने Cloud Firestore को अपने प्राइमरी डेटाबेस के तौर पर इस्तेमाल करने का फ़ैसला लिया है है, तो पक्का करें कि आपने डेटा-डुप्लीकेट वर्शन बनाने के लिए अपने Cloud Firestore Security Rules को सेट अप और पुष्टि करें.

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

  2. पुष्टि करें कि आपका डेटा सही तरीके से सुरक्षित है. अपने Cloud Firestore Security Rules की पुष्टि करें या IAM सेटअप के लिए इस्तेमाल होता है.