Check out what’s new from Firebase at Google I/O 2022. Learn more

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

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

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

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

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

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

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

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

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

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

इस रणनीति के साथ, उपयोगकर्ता प्रतीक्षा समय बहुत कम हो जाता है। हालांकि, नवीनतम कॉन्फ़िगरेशन देखने के लिए उपयोगकर्ता को आपके ऐप को दूसरी बार चलाना होगा। आपको इन विचारों को अपने व्यवसाय और ऐप लॉजिक के विरुद्ध संतुलित करना होगा।

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

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

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

अगले कदम

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

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