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

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


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

पहला चरण: अपने ऐप्लिकेशन में Firebase और रिमोट कॉन्फ़िगरेशन SDK टूल जोड़ना

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

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

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

    flutter pub add firebase_remote_config
    

    इसके अलावा, रिमोट कॉन्फ़िगरेशन सेट अप करने के लिए, आपको अपने ऐप्लिकेशन में 'Firebase के लिए Google Analytics' 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 कंसोल में, अपना प्रोजेक्ट खोलें.
  2. रिमोट कॉन्फ़िगरेशन डैशबोर्ड देखने के लिए, मेन्यू में जाकर रिमोट कॉन्फ़िगरेशन चुनें.
  3. अपने ऐप्लिकेशन में तय किए गए पैरामीटर के नामों से ही पैरामीटर तय करें. हर पैरामीटर के लिए, एक डिफ़ॉल्ट वैल्यू सेट की जा सकती है. यह वैल्यू, इन-ऐप्लिकेशन डिफ़ॉल्ट वैल्यू को ओवरराइड करेगी. साथ ही, शर्तों के हिसाब से वैल्यू भी सेट की जा सकती हैं. ज़्यादा जानने के लिए, रिमोट कॉन्फ़िगरेशन के पैरामीटर और शर्तें देखें.

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

  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),
));