Flutter पर रिमोट कॉन्फ़िगरेशन का इस्तेमाल शुरू करना

प्लैटफ़ॉर्म चुनें: iOS+ Android Web Flutter Unity C++


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

पहला चरण: अपने ऐप्लिकेशन में Firebase और Remote Config SDK जोड़ना

  1. अगर आपने अब तक ऐसा नहीं किया है, तो Flutter के लिए Firebase SDK टूल इंस्टॉल करें और उन्हें शुरू करें.

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

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

    flutter pub add firebase_remote_config
    

    इसके अलावा, रिमोट कॉन्फ़िगरेशन सेट अप करने के लिए, आपको अपने ऐप्लिकेशन में Google Analytics के लिए Firebase SDK टूल जोड़ना होगा:

    flutter pub add firebase_analytics
    
  4. अपने प्रोजेक्ट को फिर से बनाएं:

    flutter run
    
  5. अगर macOS पर रिमोट कॉन्फ़िगरेशन का इस्तेमाल किया जा रहा है, तो Xcode में Keychain Sharing चालू करें.

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

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

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

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

हमारा सुझाव है कि डेवलपमेंट के दौरान, फ़ेच करने का कम से कम इंटरवल सेट करें. ज़्यादा जानकारी के लिए, थ्रॉटलिंग देखें.

तीसरा चरण: ऐप्लिकेशन में पैरामीटर की डिफ़ॉल्ट वैल्यू सेट करना

रिमोट कॉन्फ़िगरेशन ऑब्जेक्ट में, ऐप्लिकेशन में इस्तेमाल होने वाले डिफ़ॉल्ट पैरामीटर की वैल्यू सेट की जा सकती हैं. इससे, आपका ऐप्लिकेशन रिमोट कॉन्फ़िगरेशन बैकएंड से कनेक्ट होने से पहले, आपके हिसाब से काम करेगा. साथ ही, अगर बैकएंड में कोई वैल्यू सेट नहीं की गई है, तो डिफ़ॉल्ट वैल्यू उपलब्ध होंगी.

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

चौथा चरण: अपने ऐप्लिकेशन में इस्तेमाल करने के लिए पैरामीटर वैल्यू पाना

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

इन वैल्यू को पाने के लिए, यहां दिए गए किसी भी ऐसे तरीके को कॉल करें जो आपके ऐप्लिकेशन के हिसाब से डेटा टाइप पर मैप करता हो. इसके लिए, पैरामीटर की को आर्ग्युमेंट के तौर पर दें:

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

पांचवां चरण: रिमोट कॉन्फ़िगरेशन बैकएंड में पैरामीटर वैल्यू सेट करना

Firebase कंसोल या रिमोट कॉन्फ़िगरेशन बैकएंड एपीआई का इस्तेमाल करके, सर्वर-साइड की नई डिफ़ॉल्ट वैल्यू बनाई जा सकती हैं. ये वैल्यू, आपकी पसंद के मुताबिक शर्त या उपयोगकर्ता टारगेटिंग के हिसाब से, ऐप्लिकेशन में मौजूद वैल्यू को बदल देती हैं. इस सेक्शन में, इन वैल्यू को बनाने के लिए Firebase कंसोल के चरणों के बारे में बताया गया है.

  1. Firebase console में, DevOps & Engagement > रिमोट कॉन्फ़िगरेशन पर जाएं.

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

छठा चरण: वैल्यू फ़ेच और ऐक्टिवेट करना

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

  2. फ़ेच की गई पैरामीटर वैल्यू को अपने ऐप्लिकेशन के लिए उपलब्ध कराने के लिए, activate() तरीके को कॉल करें.

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

    await remoteConfig.fetchAndActivate();
    

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

सातवां चरण: रीयल टाइम में अपडेट सुनना

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

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

  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 घंटे की अवधि में, कॉन्फ़िगरेशन को बैकएंड से एक से ज़्यादा बार फ़ेच नहीं किया जाएगा. भले ही, फ़ेच करने के लिए कितने भी कॉल किए गए हों.

अगर ऐप्लिकेशन डेवलपमेंट के दौरान, रीयल-टाइम Remote Config का इस्तेमाल नहीं किया जा रहा है (हमारा सुझाव है कि आप इसका इस्तेमाल करें), तो आपको कॉन्फ़िगरेशन को बार-बार (हर घंटे में कई बार) फ़ेच और चालू करना पड़ सकता है. इससे आपको ऐप्लिकेशन डेवलप और टेस्ट करने के दौरान, तेज़ी से बदलाव करने में मदद मिलेगी. अगर किसी प्रोजेक्ट पर 10 डेवलपर काम कर रहे हैं और आपको तेज़ी से बदलाव करने हैं, तो setConfigSettings() की मदद से, फ़ेच करने का कम से कम इंटरवल कुछ समय के लिए सेट किया जा सकता है.

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