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


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 शेयरिंग की सुविधा चालू करें.

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

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

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 इस्तेमाल के उदाहरण देखें. साथ ही, कुछ अहम कॉन्सेप्ट और बेहतर रणनीतियों के दस्तावेज़ देखें. इनमें ये शामिल हैं: