कोई डेटाबेस चुनें: Cloud Firestore या रीयल टाइम डेटाबेस

Firebase, क्लाउड पर आधारित दो ऐसे डेटाबेस उपलब्ध कराता है जिन्हें क्लाइंट ऐक्सेस कर सकते हैं. हम नए ग्राहकों को Cloud Firestore से शुरुआत करने का सुझाव देते हैं:

  • Cloud Firestore एंटरप्राइज़-ग्रेड का सुझाया गया JSON-संगत दस्तावेज़ डेटाबेस है. इस पर 6, 00,000 से ज़्यादा डेवलपर भरोसा करते हैं. यह ऐसे ऐप्लिकेशन के लिए सही है जिनमें रिच डेटा मॉडल की ज़रूरत होती है. साथ ही, जिनमें क्वेरी, बढ़ाए जा सकने की योग्यता, और ज़्यादा अपटाइम की ज़रूरत होती है. यह कम इंतज़ार के समय में क्लाइंट सिंक करने और ऑफ़लाइन डेटा का ऐक्सेस करने की सुविधा भी देता है.

  • Realtime Database , Firebase का क्लासिक JSON डेटाबेस है. यह ऐसे ऐप्लिकेशन के लिए सही है जिनमें डेटा के सामान्य मॉडल की ज़रूरत होती है. साथ ही, जिनमें सामान्य लुकअप और कम इंतज़ार के समय में सिंक करने की ज़रूरत होती है. हालांकि, इसमें स्केलिंग की सुविधा सीमित होती है.

आपको किन अन्य अहम बातों का ध्यान रखना चाहिए?

ऊपर बताई गई अहम बातों पर विचार करने के बाद, हो सकता है कि अब आप कोई डेटाबेस चुन सकें . अगर अब भी आपको फ़ायदे और नुकसान के बारे में तय करने में मुश्किल हो रही है, तो इस सेक्शन में अन्य अंतरों के बारे में बताया गया है.Cloud FirestoreRealtime Database

डेटा मॉडल

Realtime Database और Cloud Firestore, दोनों NoSQL डेटाबेस हैं.

Cloud Firestore [ PREFERRED ] Realtime Database
डेटा को दस्तावेज़ों के कलेक्शन के तौर पर सेव करता है.
  • सामान्य डेटा को दस्तावेज़ों में आसानी से सेव किया जा सकता है. ये दस्तावेज़, JSON से मिलते-जुलते होते हैं.
  • दस्तावेज़ों में सब-कलेक्शन का इस्तेमाल करके, जटिल और क्रम में लगे डेटा को बड़े पैमाने पर आसानी से व्यवस्थित किया जा सकता है.
  • इसके लिए, डेटा को डीनॉर्मलाइज़ और फ़्लैट करने की कम ज़रूरत होती है.

Cloud Firestore डेटा मॉडल के बारे में ज़्यादा जानें.

डेटा को एक बड़े JSON ट्री के तौर पर सेव करता है.
  • सामान्य डेटा को बहुत आसानी से सेव किया जा सकता है.
  • जटिल और क्रम में लगे डेटा को बड़े पैमाने पर व्यवस्थित करना मुश्किल होता है.

Realtime Database डेटा मॉडल के बारे में ज़्यादा जानें.

रीयलटाइम और ऑफ़लाइन सहायता

दोनों में मोबाइल-फ़र्स्ट, रीयलटाइम एसडीके टूल हैं. साथ ही, दोनों ऑफ़लाइन मोड में काम करने वाले ऐप्लिकेशन के लिए, स्थानीय तौर पर डेटा सेव करने की सुविधा देते हैं.

Cloud Firestore [ PREFERRED ] Realtime Database
Apple, Android, और वेब क्लाइंट के लिए ऑफ़लाइन सहायता. Apple और Android क्लाइंट के लिए ऑफ़लाइन सहायता.

खोज नतीजों में दिखने का अनुपात

यह जानना काम का हो सकता है कि कोई क्लाइंट ऑनलाइन है या ऑफ़लाइन. Firebase Realtime Database क्लाइंट के कनेक्शन का स्टेटस रिकॉर्ड कर सकता है. साथ ही, क्लाइंट के कनेक्शन का स्टेटस बदलने पर, अपडेट दे सकता है.

Cloud Firestore [ PREFERRED ] Realtime Database
यह सुविधा, डिफ़ॉल्ट रूप से उपलब्ध नहीं है. आप Realtime Database's में मौजूदगी की सुविधा बनाने के लिए, Cloud Firestore में मौजूद सुविधा का इस्तेमाल किया जा सकता है. इसके लिए, Cloud Functions का इस्तेमाल करके, Cloud Firestore और Realtime Database को सिंक करें. Build presence in Cloud Firestore देखें. मौजूदगी की सुविधा उपलब्ध है.

क्वेरी

क्वेरी के ज़रिए, किसी भी डेटाबेस से डेटा वापस पाया जा सकता है, उसे क्रम से लगाया जा सकता है, और फ़िल्टर किया जा सकता है.

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

डेटा लिखना और लेन-देन

Cloud Firestore [ PREFERRED ] Realtime Database
डेटा लिखने और लेन-देन के लिए, बेहतर कार्रवाइयां. डेटा लिखने और लेन-देन के लिए, बुनियादी कार्रवाइयां.
  • डेटा लिखें सेट और अपडेट कार्रवाइयों के ज़रिए.
  • लेन-देन डेटा के किसी खास सबट्री पर एटॉमिक होते हैं.

भरोसेमंद होना और परफ़ॉर्मेंस

Cloud Firestore [ PREFERRED ] Realtime Database
Cloud Firestore एक से ज़्यादा इलाकों में काम करने वाला और एक ही इलाके में काम करने वाला ऐसा सलूशन है जो अपने-आप स्केल होता है.
  • यह कम इंतज़ार के समय वाला सलूशन है. इसमें आम तौर पर, 30 मि॰से॰ से ज़्यादा समय नहीं लगता.
  • यह अलग-अलग इलाकों में मौजूद कई डेटा सेंटर में आपका डेटा सेव करता है. इससे, दुनिया भर में स्केलिंग और भरोसेमंद परफ़ॉर्मेंस मिलती है.
  • यह दुनिया भर में, एक से ज़्यादा इलाकों में काम करने वाले या एक ही इलाके में काम करने वाले कॉन्फ़िगरेशन में उपलब्ध है.
Cloud Firestore परफ़ॉर्मेंस और भरोसेमंद होने की विशेषताओं के बारे में ज़्यादा पढ़ें सेवा के स्तर से जुड़े समझौते में.
Realtime Database एक इलाके में काम करने वाला सलूशन है.
  • यह एक ही इलाके में काम करने वाले कॉन्फ़िगरेशन में उपलब्ध है. डेटाबेस, किसी इलाके में ज़ोनल उपलब्धता तक सीमित होते हैं.
  • इसमें इंतज़ार का समय बहुत कम होता है. आम तौर पर, इसमें 10 मि॰से॰ से ज़्यादा समय नहीं लगता. यह बार-बार स्टेट-सिंक करने के लिए एक बेहतरीन विकल्प है.
Realtime Database परफ़ॉर्मेंस और भरोसेमंद होने की विशेषताओं के बारे में ज़्यादा पढ़ें सेवा के स्तर से जुड़े समझौते में.

डिवाइस कब से चालू है

Cloud Firestore [ PREFERRED ] Realtime Database
डिवाइस के चालू रहने की परफ़ॉर्मेंस बहुत ज़्यादा होती है.
  • आम तौर पर, डिवाइस के चालू रहने की परफ़ॉर्मेंस 99.999% होती है.
  • अगर अवेलेबिलिटी सबसे ज़्यादा ज़रूरी है, तो Cloud Firestore का इस्तेमाल करें. जैसे, ई-कॉमर्स ऐप्लिकेशन में. use Cloud Firestore.
डिवाइस के चालू रहने की परफ़ॉर्मेंस ज़्यादा होती है.
  • आम तौर पर, डिवाइस के चालू रहने की परफ़ॉर्मेंस 99.95% होती है.

रिसर्च को बढ़ाए जा सकने की योग्यता

Cloud Firestore [ PREFERRED ] Realtime Database
स्केलिंग अपने-आप होती है.
  • यह पूरी तरह से अपने-आप स्केल होता है. इसमें एक साथ कई कनेक्शन या हर सेकंड में डेटाबेस में लिखे जाने की दर की कोई सीमा नहीं होती.
  • इसमें अलग-अलग दस्तावेज़ों या इंडेक्स में डेटा लिखने की दर की सीमाएं होती हैं.
स्केलिंग के लिए शार्डिंग की ज़रूरत होती है.
  • एक डेटाबेस में, एक साथ करीब 2,00,000 कनेक्शन और हर सेकंड में 1,000 बार डेटा लिखा जा सकता है. इससे ज़्यादा स्केलिंग के लिए, आपको अपना डेटा कई डेटाबेस में शार्ड करना होगा.
  • डेटा के अलग-अलग हिस्सों में डेटा लिखने की दर की कोई स्थानीय सीमा नहीं होती.

सुरक्षा

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

कीमत

दोनों सलूशन, स्पार्क और ब्लेज़ कीमत वाले प्लान में उपलब्ध हैं.

Cloud Firestore [ PREFERRED ] Realtime Database
मुख्य रूप से, आपके डेटाबेस में की गई कार्रवाइयों (पढ़ना, लिखना, मिटाना) के लिए शुल्क लिया जाता है. इसके अलावा, बैंडविथ और स्टोरेज के लिए कम दर पर शुल्क लिया जाता है.

Cloud Firestore में, हर महीने के लिए बजट और चेतावनियां सेट की जा सकती हैं, ताकि तय बजट से ज़्यादा खर्च न हो.

Cloud Firestore कीमत वाले प्लान के बारे में ज़्यादा पढ़ें.

सिर्फ़ बैंडविथ और स्टोरेज के लिए शुल्क लिया जाता है. हालांकि, इसकी दर ज़्यादा होती है .

Realtime Database कीमत वाले प्लान के बारे में ज़्यादा पढ़ें.

Cloud Firestore और Realtime Database का इस्तेमाल करना

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

दोनों Realtime Database और Cloud Firestoreमें उपलब्ध सुविधाओं के बारे में ज़्यादा जानें.

क्या आपको डेटाबेस चुनना है?

उम्मीद है कि इस तुलना से आपको Firebase डेटाबेस सलूशन चुनने में मदद मिली होगी. अब अपने Firebase प्रोजेक्ट में डेटाबेस जोड़ने का तरीका जानें.