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

अगले चरण

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