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