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

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


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

पहला चरण: अपने ऐप्लिकेशन में Firebase और रिमोट कॉन्फ़िगरेशन 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 कंसोल में, DevOps और यूज़र ऐक्टिविटी > रिमोट कॉन्फ़िगरेशन पर जाएं.

  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. अगली बार जब रिमोट कॉन्फ़िगरेशन का नया वर्शन पब्लिश किया जाएगा, तब आपके ऐप्लिकेशन को चलाने वाले और बदलावों को सुनने वाले डिवाइस, नए कॉन्फ़िगरेशन को चालू कर देंगे.

थ्रॉटलिंग

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