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


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

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

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

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

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

    await remoteConfig.fetchAndActivate();
    

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

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

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

ध्यान दें कि वेब के लिए, रीयल-टाइम Remote Config उपलब्ध नहीं है.

  1. अपने ऐप्लिकेशन में, अपडेट सुनने के लिए onConfigUpdated का इस्तेमाल करें. इससे नई पैरामीटर वैल्यू अपने-आप फ़ेच हो जाएंगी.

     remoteConfig.onConfigUpdated.listen((event) async {
       await remoteConfig.activate();
    
       // Use the new config values here.
     });
    
  2. अगली बार जब रिमोट कॉन्फ़िगरेशन का नया वर्शन पब्लिश किया जाएगा, तब आपके ऐप्लिकेशन को चलाने वाले और बदलावों को सुनने वाले डिवाइसों पर नया कॉन्फ़िगरेशन चालू हो जाएगा.

थ्रॉटलिंग

अगर कोई ऐप्लिकेशन कम समय में कई बार फ़ेच करता है, तो फ़ेच कॉल को थ्रॉटल किया जाएगा. साथ ही, FirebaseRemoteConfig की lastFetchStatus प्रॉपर्टी की वैल्यू RemoteConfigFetchStatus.throttle होगी.

Remote Config के लिए, फ़ेच करने का डिफ़ॉल्ट कम से कम इंटरवल 12 घंटे होता है. इसका मतलब है कि 12 घंटे की अवधि में, कॉन्फ़िगरेशन को बैकएंड से एक से ज़्यादा बार फ़ेच नहीं किया जाएगा. भले ही, फ़ेच करने के लिए कितने भी कॉल किए गए हों.

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

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

अगले चरण

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