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

अगले चरण

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

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