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

अगले चरण

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