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

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

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

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

इनके अलावा, किन दूसरी ज़रूरी बातों का ध्यान रखना चाहिए?

ऊपर बताई गई अहम बातों पर विचार करने के बाद, अब आपको डेटाबेस चुनना होगा. अगर आपको अब भी फ़ायदों और नुकसानों के बारे में सोचना है, तो इस सेक्शन में Cloud Firestore और Realtime 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 में मौजूदगी की सुविधा को बेहतर बनाया जा सकता है. इसके लिए, Cloud Functions का इस्तेमाल करके Cloud Firestore और Realtime Database को सिंक करें. 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 का इस्तेमाल करें. उदाहरण के लिए, ई-कॉमर्स ऐप्लिकेशन में.
ज़्यादा अपटाइम परफ़ॉर्मेंस.
  • आम तौर पर, 99.95% अपटाइम की परफ़ॉर्मेंस.

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

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

सुरक्षा

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