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


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

चरण 1: अपने ऐप में फायरबेस और रिमोट कॉन्फिग एसडीके जोड़ें

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

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

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

    flutter pub add firebase_remote_config
    

    साथ ही, रिमोट कॉन्फ़िगरेशन सेट करने के हिस्से के रूप में, आपको अपने ऐप में Google Analytics के लिए फ़ायरबेस एसडीके जोड़ना होगा:

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

    flutter run
    
  5. यदि आप macOS पर रिमोट कॉन्फिग का उपयोग कर रहे हैं, तो Xcode में किचेन शेयरिंग सक्षम करें।

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

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

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

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

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

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

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

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

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

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

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

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

चरण 5: रिमोट कॉन्फिग बैकएंड में पैरामीटर मान सेट करें

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

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

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

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

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

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

    await remoteConfig.fetchAndActivate();
    

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

चरण 7: वास्तविक समय में अपडेट सुनें

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

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

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

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

थ्रॉटलिंग

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

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

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

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

अगले कदम

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