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

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

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

  • 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 Firestore और Realtime Database को सिंक किया जा सकता है. इसके लिए, Cloud Functions का इस्तेमाल करें. Cloud Firestore में प्रज़ेंस की सुविधा सेट अप करना देखें. मौजूदगी का पता लगाने की सुविधा काम करती है.

क्वेरी

क्वेरी की मदद से, दोनों डेटाबेस से डेटा वापस पाना, उसे क्रम से लगाना, और फ़िल्टर करना.

Cloud Firestore [ PREFERRED ] Realtime Database
कंपाउंड सॉर्टिंग और फ़िल्टर करने की सुविधा वाली इंडेक्स की गई क्वेरी.
  • एक ही क्वेरी में, किसी प्रॉपर्टी पर फ़िल्टर को चेन किया जा सकता है. साथ ही, फ़िल्टर करने और क्रम से लगाने की सुविधा को जोड़ा जा सकता है.
  • क्वेरी शैलो होती हैं: ये सिर्फ़ किसी खास कलेक्शन या कलेक्शन ग्रुप में मौजूद दस्तावेज़ दिखाती हैं. साथ ही, सब-कलेक्शन का डेटा नहीं दिखातीं.
  • क्वेरी से हमेशा पूरे दस्तावेज़ मिलने चाहिए.
  • क्वेरी डिफ़ॉल्ट रूप से इंडेक्स की जाती हैं: क्वेरी की परफ़ॉर्मेंस, आपके डेटासेट के साइज़ के बजाय, आपके नतीजे के सेट के साइज़ के हिसाब से तय होती है.
Deep queries with limited sorting and filtering features.
  • क्वेरी, किसी प्रॉपर्टी को क्रम से लगा सकती हैं या फ़िल्टर कर सकती हैं, लेकिन दोनों काम एक साथ नहीं कर सकतीं.
  • क्वेरी डिफ़ॉल्ट रूप से डीप होती हैं: वे हमेशा पूरा सबट्री दिखाती हैं.
  • क्वेरी, डेटा को किसी भी लेवल पर ऐक्सेस कर सकती हैं. यहां तक कि 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 प्रोजेक्ट में डेटाबेस जोड़ने का तरीका जानने का विकल्प है.