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

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

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

सुरक्षा

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

कीमत

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

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

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

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

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

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

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

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

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

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

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