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 बैकएंड की डिफ़ॉल्ट वैल्यू को समय-समय पर सिंक किया जा सकता है.

अगले चरण

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

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