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

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

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

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

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

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

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

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

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

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

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

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

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

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

एंटी-स्ट्रेटजी लोड हो रही हैं

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

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

अगले चरण

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

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