Catch up on highlights from Firebase at Google I/O 2023. Learn more

फायरबेस रिमोट कॉन्फिग लोडिंग रणनीतियाँ

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

यह गाइड कुछ लोडिंग रणनीतियों पर नज़र डालती है और आपके ऐप के लिए सबसे अच्छा विकल्प चुनने के लिए महत्वपूर्ण बातों पर चर्चा करती है।

रणनीति 1: लोड होने पर प्राप्त करें और सक्रिय करें

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

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

रणनीति 2: लोडिंग स्क्रीन के पीछे सक्रिय करें

रणनीति 1 में आई संभावित यूआई समस्या के उपाय के रूप में, आप एक लोडिंग स्क्रीन पर भरोसा कर सकते हैं। अपने ऐप को तुरंत शुरू करने के बजाय, लोडिंग स्क्रीन दिखाएं और अपने पूरा होने वाले हैंडलर में fetchAndActivate कॉल करें। फिर उसके ठीक बाद - फिर से कॉलबैक या अधिसूचना का उपयोग करते हुए - लोडिंग स्क्रीन को खारिज कर दें और उपयोगकर्ता को अपने ऐप से बातचीत शुरू करने दें।

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

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

रणनीति 3: अगले स्टार्टअप के लिए नए मान लोड करें

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

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

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

विरोधी रणनीतियाँ लोड हो रही हैं

जैसा कि आप लोडिंग पेशेवरों और विपक्षों की उपरोक्त चर्चा से समझ गए होंगे, इससे बचने के लिए कुछ उपयोग पैटर्न हैं।

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

अगले कदम

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

कॉन्फ़िगरेशन मान प्राप्त करने और सक्रिय करने के लिए विशिष्ट कॉल के बारे में अधिक जानने के लिए अपने प्लेटफ़ॉर्म के लिए API संदर्भ देखें।