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

फायरबेस रिमोट कॉन्फिग के साथ आरंभ करें


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

चरण 1: अपने ऐप में Firebase और Remote Config SDK जोड़ें

  1. यदि आपने पहले से ऐसा नहीं किया है तो फ़्लटर के लिए फायरबेस एसडीके को स्थापित और आरंभ करें

  2. Remote Config के लिए, उपयोगकर्ता प्रॉपर्टी और ऑडियंस के लिए ऐप इंस्टेंस के सशर्त लक्ष्यीकरण के लिए Google Analytics आवश्यक है। सुनिश्चित करें कि आप अपने प्रोजेक्ट में Google Analytics को सक्षम करते हैं

  3. अपने स्पंदन प्रोजेक्ट की रूट डायरेक्टरी से, रिमोट कॉन्फिग प्लगइन को स्थापित करने के लिए निम्नलिखित कमांड चलाएँ:

    flutter pub add firebase_remote_config
    

    साथ ही, Remote Config सेट अप करने के भाग के रूप में, आपको अपने ऐप में Google Analytics के लिए Firebase SDK जोड़ना होगा:

    flutter pub add firebase_analytics
    
  4. अपनी परियोजना का पुनर्निर्माण करें:

    flutter run
    

चरण 2: रिमोट कॉन्फ़िग सिंगलटन ऑब्जेक्ट प्राप्त करें

एक दूरस्थ कॉन्फ़िग ऑब्जेक्ट उदाहरण प्राप्त करें और बार-बार ताज़ा करने की अनुमति देने के लिए न्यूनतम फ़ेच अंतराल सेट करें:

final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
    fetchTimeout: const Duration(minutes: 1),
    minimumFetchInterval: const Duration(hours: 1),
));

सिंगलटन ऑब्जेक्ट का उपयोग इन-ऐप डिफ़ॉल्ट पैरामीटर मानों को संग्रहीत करने के लिए किया जाता है, बैकएंड से अपडेट किए गए पैरामीटर मान प्राप्त करें, और आपके ऐप पर प्राप्त किए गए मानों को उपलब्ध कराने पर नियंत्रण करें।

विकास के दौरान, अपेक्षाकृत कम न्यूनतम फ़ेच अंतराल सेट करने की अनुशंसा की जाती है। अधिक जानकारी के लिए थ्रॉटलिंग देखें।

चरण 3: इन-ऐप डिफ़ॉल्ट पैरामीटर मान सेट करें

आप Remote Config ऑब्जेक्ट में इन-एप डिफ़ॉल्ट पैरामीटर मान सेट कर सकते हैं, ताकि आपका ऐप Remote Config बैकएंड से कनेक्ट होने से पहले अपेक्षित व्यवहार करे, और ताकि बैकएंड में कोई भी सेट न होने पर डिफ़ॉल्ट मान उपलब्ध हों।

await remoteConfig.setDefaults(const {
    "example_param_1": 42,
    "example_param_2": 3.14159,
    "example_param_3": true,
    "example_param_4": "Hello, world!",
});

चरण 4: अपने ऐप में उपयोग करने के लिए पैरामीटर मान प्राप्त करें

अब आप Remote Config ऑब्जेक्ट से पैरामीटर मान प्राप्त कर सकते हैं। यदि आप बैकएंड में मान सेट करते हैं, उन्हें लाते हैं, और फिर उन्हें सक्रिय करते हैं, तो वे मान आपके ऐप के लिए उपलब्ध होते हैं। अन्यथा, आपको setDefaults() का उपयोग करके इन-ऐप पैरामीटर मान कॉन्फ़िगर किए जाते हैं।

इन मानों को प्राप्त करने के लिए, नीचे सूचीबद्ध विधि को कॉल करें जो आपके ऐप द्वारा अपेक्षित डेटा प्रकार के लिए मैप करता है, पैरामीटर कुंजी को एक तर्क के रूप में प्रदान करता है:

  • getBool()
  • getDouble()
  • getInt()
  • getString()

चरण 5: Remote Config बैकएंड में पैरामीटर मान सेट करें

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

  1. Firebase कंसोल में, अपना प्रोजेक्ट खोलें।
  2. Remote Config डैशबोर्ड देखने के लिए मेनू से Remote Config चुनें।
  3. पैरामीटर को उन्हीं नामों से परिभाषित करें जिन्हें आपने अपने ऐप में परिभाषित किया था। प्रत्येक पैरामीटर के लिए, आप एक डिफ़ॉल्ट मान सेट कर सकते हैं (जो अंततः संबंधित इन-ऐप डिफ़ॉल्ट मान को ओवरराइड कर देगा), और आप सशर्त मान भी सेट कर सकते हैं। अधिक जानने के लिए, Remote Config Parameters and Conditions देखें।

चरण 6: मान प्राप्त करें और सक्रिय करें

  1. रिमोट कॉन्फ़िगरेशन बैकएंड से पैरामीटर मान प्राप्त करने के लिए, fetch() विधि को कॉल करें। आपके द्वारा बैकएंड में सेट किया गया कोई भी मान प्राप्त किया जाता है और Remote Config ऑब्जेक्ट में संग्रहीत किया जाता है।

  2. प्राप्त किए गए पैरामीटर मान को अपने ऐप में उपलब्ध कराने के लिए, activate() विधि को कॉल करें।

    उन मामलों के लिए जहां आप एक कॉल में मूल्यों को प्राप्त करना और सक्रिय करना चाहते हैं, आप Remote Config बैकएंड से मूल्यों को लाने और उन्हें ऐप के लिए उपलब्ध कराने के लिए एक fetchAndActivate() अनुरोध का उपयोग कर सकते हैं:

    await remoteConfig.fetchAndActivate();
    

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

चरण 7: वास्तविक समय में अद्यतनों के लिए सुनें

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

ध्यान दें कि रीयल-टाइम रिमोट कॉन्फ़िगरेशन वेब के लिए उपलब्ध नहीं है।

  1. अपने ऐप में, अपडेट सुनना शुरू करने के लिए onConfigUpdated उपयोग करें और स्वचालित रूप से कोई नया पैरामीटर मान प्राप्त करें।

     remoteConfig.onConfigUpdated.listen((event) async {
       await remoteConfig.activate();
    
       // Use the new config values here.
     });
    
  2. अगली बार जब आप अपने Remote Config का एक नया संस्करण प्रकाशित करते हैं, तो डिवाइस जो आपके ऐप को चला रहे हैं और परिवर्तनों को सुन रहे हैं, वे नए कॉन्फिग को सक्रिय करेंगे।

थ्रॉटलिंग

यदि कोई ऐप कम समय अवधि में बहुत अधिक बार प्राप्त करता है, तो कॉल प्राप्त करना थ्रॉटल हो जाएगा और FirebaseRemoteConfig की lastFetchStatus प्रॉपर्टी का मान RemoteConfigFetchStatus.throttle होगा।

Remote Config के लिए डिफॉल्ट न्यूनतम फ़ेच इंटरवल 12 घंटे है, जिसका अर्थ है कि 12 घंटे की विंडो में कॉन्फिग को बैकएंड से एक से अधिक बार नहीं लाया जाएगा, भले ही वास्तव में कितने फ़ेच कॉल किए गए हों।

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

final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
    fetchTimeout: const Duration(minutes: 1),
    minimumFetchInterval: const Duration(minutes: 5),
));

अगले कदम

If you haven't already, explore the Remote Config use cases , and take a look at some of the key concepts and advanced strategies documentation, including: