Firebase रिमोट कॉन्फ़िगरेशन की मदद से डेटा लोड करने की रणनीतियां

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

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

पहली रणनीति: लोड होने पर फ़ेच और चालू करना

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

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

रणनीति 2: लोड होने वाली स्क्रीन के पीछे चालू करें

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

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

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

रणनीति 3: अगले स्टार्टअप के लिए नई वैल्यू लोड करें

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

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

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

रणनीतियां लोड हो रही हैं

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

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

अगले चरण

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

कॉन्फ़िगरेशन वैल्यू को फ़ेच और चालू करने के खास कॉल के बारे में ज़्यादा जानने के लिए, अपने प्लैटफ़ॉर्म के एपीआई का रेफ़रंस देखें.