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


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

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

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

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

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

    flutter pub add firebase_remote_config
    

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

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

    flutter run
    
  5. अगर macOS पर Remote Config का इस्तेमाल किया जा रहा है, तो Xcode में Keychain शेयर करने की सुविधा चालू करें.

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

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

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

अगले चरण

अगर आपने अब तक ऐसा नहीं किया है, तो Remote Config इस्तेमाल के उदाहरण देखें. साथ ही, कुछ मुख्य कॉन्सेप्ट और बेहतर रणनीतियों के दस्तावेज़ देखें. इनमें ये शामिल हैं: