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