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

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

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

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

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

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

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

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

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

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

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

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

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

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

डेटा लोड करने से जुड़ी गलत रणनीतियां

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

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

अगले चरण

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

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