रीयल-टाइम क्वेरी को बड़े पैमाने पर समझना

बिना सर्वर वाले ऐप्लिकेशन की संख्या को बढ़ाने के लिए, यह दस्तावेज़ पढ़ें. की कार्रवाइयां प्रति सेकंड या लाखों की संख्या में होती हैं एक साथ इस्तेमाल करने वाले लोगों की संख्या. इस दस्तावेज़ में बेहतर विषयों के बारे में बताया गया है सिस्टम को गहराई से समझते हैं. अगर आपने हाल ही में Cloud Firestore, इसके बजाय क्विकस्टार्ट गाइड देखें.

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

अपने ऐप्लिकेशन का साइज़ बढ़ाने के बारे में सलाह पाने के लिए, नीचे दिए गए सेक्शन देखें.

अपने उपयोगकर्ताओं के नज़दीक मौजूद डेटाबेस को चुनें

नीचे दिया गया डायग्राम, रीयल-टाइम ऐप्लिकेशन का आर्किटेक्चर दिखाता है:

रीयल-टाइम ऐप्लिकेशन आर्किटेक्चर का उदाहरण

जब उपयोगकर्ता के डिवाइस (मोबाइल या वेब) पर चल रहा कोई ऐप्लिकेशन, Cloud Firestore से कनेक्ट करने पर, कनेक्शन को Cloud Firestore फ़्रंटएंड सर्वर एक ही है क्षेत्र जहां आपका डेटाबेस मौजूद है. उदाहरण के लिए, अगर आपका डेटाबेस us-east1 में है, तो कनेक्शन us-east1 के लिए Cloud Firestore फ़्रंटएंड भी. ये कनेक्शन हैं: लंबे समय तक लाइव रहा हो और जब तक ऐप्लिकेशन पूरी तरह बंद न कर दे, तब तक खुला रहता है. कॉन्टेंट बनाने फ़्रंटएंड, मौजूदा Cloud Firestore स्टोरेज सिस्टम के डेटा को पढ़ता है.

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

विश्वसनीयता के लिए डिज़ाइन

इन विषयों की मदद से, आपके ऐप्लिकेशन को बेहतर बनाया जाता है या उस पर असर डाला जाता है:

ऑफ़लाइन मोड चालू करें

Firebase SDK टूल की मदद से, ऑफ़लाइन डेटा को एक जैसा रखा जा सकता है. अगर उपयोगकर्ता के डिवाइस पर मौजूद ऐप्लिकेशन, Cloud Firestore से कनेक्ट नहीं हो पा रहा है, लोकल कैश मेमोरी में सेव किए गए डेटा के साथ काम करके, ऐप्लिकेशन इस्तेमाल किया जा सकता है. इससे पक्का होता है कि डेटा तब भी ऐक्सेस किया जा सकता है, जब उपयोगकर्ताओं को कमज़ोर इंटरनेट कनेक्शन का अनुभव हो या कुछ घंटों या दिनों के लिए पूरी तरह से ऐक्सेस खो देंगे. इस बारे में ज़्यादा जानकारी पाने के लिए ऑफ़लाइन मोड में, ऑफ़लाइन डेटा चालू करें देखें.

अपने-आप होने वाली कोशिशों के बारे में जानें

Firebase SDK टूल की मदद से, बार-बार की जाने वाली कार्रवाइयों की कोशिश की जाती है और उन्हें फिर से शुरू किया जाता है कनेक्शन टूटते हैं. इससे अस्थायी गड़बड़ियों को ठीक करने में मदद मिलती है क्लाइंट और डेटाबेस.

एक जगह या एक से ज़्यादा क्षेत्रों के हिसाब से लोकेशन चुनें

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

रीयल-टाइम क्वेरी सिस्टम को समझें

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

ऐसे दो उपयोगकर्ताओं के बारे में सोचें जो किसी मैसेज सेवा के ज़रिए Cloud Firestore से कनेक्ट होते हैं किसी मोबाइल SDK टूल से बनाया गया ऐप्लिकेशन हो.

क्लाइंट A, कलेक्शन में दस्तावेज़ों को जोड़ने और अपडेट करने के लिए डेटाबेस में लिखता है chatroom को कॉल किया गया:

collection chatroom:
    document message1:
      from: 'Sparky'
      message: 'Welcome to Cloud Firestore!'

    document message2:
      from: 'Santa'
      message: 'Presents are coming'

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

स्नैपशॉट लिसनर कनेक्शन का आर्किटेक्चर

जब क्लाइंट B किसी स्नैपशॉट को कनेक्ट करता है, तो इवेंट का यह क्रम होता है लिसनर का डेटाबेस:

  1. क्लाइंट B, Cloud Firestore से कनेक्शन खोलता है और आपने onSnapshot(collection("chatroom")) को कॉल करके का इस्तेमाल करें. यह लिसनर कई घंटों तक ऐक्टिव रह सकता है.
  2. Cloud Firestore फ़्रंटएंड, बुनियादी स्टोरेज सिस्टम के बारे में क्वेरी करता है बूटस्ट्रैप करने के लिए. यह मैचिंग के नतीजों का पूरा सेट लोड करता है दस्तावेज़. हम इसे पोलिंग क्वेरी कहते हैं. इसके बाद, सिस्टम डेटाबेस की वैल्यू का आकलन करता है Firebase के सुरक्षा नियम से पुष्टि करें कि उपयोगकर्ता इस डेटा को ऐक्सेस कर सकता है. अगर उपयोगकर्ता को अनुमति है, तो डेटाबेस, उपयोगकर्ता को डेटा दिखाता है.
  3. इसके बाद, क्लाइंट B की क्वेरी सुनने वाले मोड में चली जाएगी. लिसनर रजिस्टर करता है सदस्यता हैंडलर के साथ काम करती है और डेटा के अपडेट होने का इंतज़ार करती है.
  4. क्लाइंट A अब किसी दस्तावेज़ में बदलाव करने के लिए, लिखने का तरीका भेजता है.
  5. डेटाबेस, दस्तावेज़ में किए गए बदलाव को स्टोरेज सिस्टम.
  6. लेन-देन के तौर पर, सिस्टम इसी अपडेट को बदलावों का लॉग. चेंजलॉग, बदलावों का सख्त क्रम इस तरह तय करता है: वे होते हैं.
  7. इस बदलाव लॉग के ज़रिए प्रशंसक, अपडेट किए गए डेटा को सदस्यता के पूल में भेज देते हैं हैंडलर.
  8. रिवर्स क्वेरी मैचर यह देखने के लिए एक्ज़ीक्यूट करता है कि अपडेट किया गया दस्तावेज़ मेल खाता है या नहीं जो हाल ही में रजिस्टर किए गए स्नैपशॉट लिसनर का इस्तेमाल करते हैं. इस उदाहरण में, दस्तावेज़ क्लाइंट B के स्नैपशॉट लिसनर से मेल खाता है. जैसा कि नाम से ही पता चलता है, आपके पास रिवर्स क्वेरी मैचर को एक सामान्य डेटाबेस क्वेरी के रूप में इस्तेमाल किया जाता है, लेकिन उलटा किया जाता है. किसी क्वेरी से मेल खाने वाले दस्तावेज़ों को खोजने के बजाय, यह खोज क्वेरी का उपयोग करें. मिलता-जुलता वीडियो मिलने पर, यह सिस्टम, उस दस्तावेज़ को स्नैपशॉट लिसनर को फ़ॉरवर्ड करता है जिसकी शिकायत की गई है. इसके बाद, सिस्टम डेटाबेस के Firebase के सुरक्षा नियमों का आकलन करता है ताकि यह पक्का किया जा सके कि डेटा सिर्फ़ उन उपयोगकर्ताओं को मिले जिनके पास इसकी अनुमति है.
  9. सिस्टम, क्लाइंट B के डिवाइस पर मौजूद दस्तावेज़ के अपडेट को SDK टूल पर फ़ॉरवर्ड कर देता है और onSnapshot कॉलबैक ट्रिगर होता है. अगर लोकल परसिस्टेंस चालू है, तो SDK टूल अपडेट को लोकल कैश मेमोरी पर भी लागू करता है.

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

यह ध्यान देने वाली बात है कि मोबाइल और वेब SDK टूल से जारी किए गए सभी रीड ऑपरेशन ऊपर दिए गए मॉडल का पालन करें. लिसनिंग मोड के बाद, पोलिंग से जुड़ी क्वेरी की जाती है ताकि एक जैसे होने की गारंटी दी जा सके. यह रीयल-टाइम लिसनर, किसी दस्तावेज़ को वापस पाने के लिए कॉल करता है और वन-शॉट क्वेरी शामिल करें. आप चाहें, तो सिंगल शॉर्ट-टाइम्ड स्नैपशॉट लिसनर के तौर पर, दस्तावेज़ को फिर से हासिल करने और वन-शॉट क्वेरी के लिए इस्तेमाल किया जाता है की वजह से परफ़ॉर्मेंस से जुड़ी समान सीमाएं लागू होती हैं.

रीयल-टाइम क्वेरी का आकलन करने के लिए, सबसे सही तरीके लागू करें

बढ़ाने लायक रीयल-टाइम क्वेरी को डिज़ाइन करने के लिए, यहां दिए गए सबसे सही तरीके लागू करें.

सिस्टम में ज़्यादा ट्रैफ़िक कॉपी होने की वजह को समझें

इस सेक्शन से आपको यह समझने में मदद मिलती है कि सिस्टम, लिखने के अनुरोधों की संख्या.

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

चेंजलॉग फ़ैन-आउट का आर्किटेक्चर

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

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

लिखने और पढ़ने के तरीके के बारे में जानना

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

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

दस्तावेज़ों को रखें और छोटे कार्रवाइयां लिखें

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

इसी तरह, इंतज़ार का समय कम रखने के लिए, छोटे, तेज़ी से किए जाने वाले काम, और लेखन संक्रियाओं को बढ़ावा दें. बड़े बैच में लेखक के नज़रिये से आपको बेहतर कॉन्टेंट मिल सकता है हालांकि, स्नैपशॉट लिसनर के लिए, सूचना का समय बढ़ सकता है. यह अन्य डेटाबेस सिस्टम के इस्तेमाल की तुलना में आम तौर पर मुश्किल होता है, क्योंकि तो बैच बनाने की सुविधा का इस्तेमाल किया जा सकता है.

बेहतर लिसनर का इस्तेमाल करें

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

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

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

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

पोलिंग क्वेरी को तेज़ी से पूरा करें

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

ऐसा भी हो सकता है कि पॉडकास्ट सुनने वाला कुछ मामलों में. यह अपने-आप होता है और SDK टूल और आपका ऐप्लिकेशन. इन स्थितियों में पोलिंग स्टेट ट्रिगर हो सकता है:

  • लोड में बदलाव की वजह से, सिस्टम बदलाव लॉग को फिर से संतुलित करता है.
  • हॉटस्पॉट की वजह से डेटाबेस में कॉन्टेंट लोड नहीं हो सका या उसे देर से लिखा गया.
  • कुछ समय के लिए सर्वर के रीस्टार्ट होने से, कुछ समय के लिए लिसनर पर असर पड़ता है.

अगर पोलिंग से जुड़ी क्वेरी तेज़ी से लोड होती हैं, तो पोलिंग स्टेटस पारदर्शी हो जाता है उपयोगकर्ताओं को सूचना देने की सुविधा होती है.

लंबे समय से पॉडकास्ट सुनने वालों को बढ़ावा दें

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

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

आगे क्या करना है