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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

अगले चरण

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

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