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

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

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

डेटा को Cloud Firestore में ले जाना

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

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

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

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

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

पक्का करें कि आपने बिलिंग लागत को शामिल किया हो दोनों रीयलटाइम डेटाबेस के लिए और Cloud Firestore.

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

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

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

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

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

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

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

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

// /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 की बेहतर क्वेरी करने की सुविधाओं की मदद से, सामान्य ऐक्सेस पैटर्न के लिए डुप्लीकेट डेटा. उदाहरण के लिए, शहर की जानकारी देने वाला ऐप्लिकेशन, जिसमें राजधानी के सभी शहरों को जनसंख्या के हिसाब से क्रम में लगाया गया है. ऐसा करने का सबसे अच्छा तरीका यह है कि रीयलटाइम डेटाबेस में, उन राजधानी शहरों की सूची, जो cities सूची में मौजूद डेटा का डुप्लीकेट बनाते हैं, इसका तरीका इस तरह से है:

{
   cities: {
    // ...
   },

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

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

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

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

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

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

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

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

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

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

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

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

  1. रीयलटाइम डेटाबेस से अपना डेटा एक्सपोर्ट करें या हाल ही के बैकअप का इस्तेमाल करें.
    1. YouTube Studio के रीयलटाइम डेटाबेस सेक्शन देखें.
    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 का इस्तेमाल करें जब भी कोई क्लाइंट रीयलटाइम डेटाबेस पर लिखता है. पक्का करें कि Cloud Firestore यह डेटा, Cloud Functions से आने वाले नए डेटा को लिखे गए डेटा के मुकाबले प्राथमिकता देता है आप अपने पुराने डेटा माइग्रेशन से हासिल कर रहे हैं.

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

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

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

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

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