Firebase रिमोट कॉन्फ़िगरेशन का इस्तेमाल करके, अपने ऐप्लिकेशन में पैरामीटर तय किए जा सकते हैं. साथ ही, क्लाउड में उनकी वैल्यू अपडेट की जा सकती हैं. इससे, ऐप्लिकेशन को अपडेट किए बिना ही, उसके लुक और काम करने के तरीके में बदलाव किया जा सकता है. इस गाइड में, शुरू करने के तरीके के बारे में बताया गया है. साथ ही, इसमें कुछ सैंपल कोड भी दिए गए हैं.
पहला चरण: अपने ऐप्लिकेशन में Firebase और रिमोट कॉन्फ़िगरेशन SDK टूल जोड़ना
अगर आपने अब तक ऐसा नहीं किया है, तो Flutter के लिए Firebase SDK टूल इंस्टॉल करें और उन्हें शुरू करें.
रिमोट कॉन्फ़िगरेशन के लिए, ऐप्लिकेशन इंस्टेंस की शर्तों के हिसाब से टारगेटिंग करने से लेकर, उपयोगकर्ता प्रॉपर्टी और ऑडियंस के लिए Google Analytics की ज़रूरत होती है. पक्का करें कि आपने अपने प्रोजेक्ट में Google Analytics चालू किया हो.
रिमोट कॉन्फ़िगरेशन प्लगिन इंस्टॉल करने के लिए, अपने Flutter प्रोजेक्ट की रूट डायरेक्ट्री से यह कमांड चलाएं:
flutter pub add firebase_remote_config
साथ ही, रिमोट कॉन्फ़िगरेशन सेट अप करने के लिए, आपको अपने ऐप्लिकेशन में Google Analytics के लिए Firebase SDK टूल जोड़ना होगा:
flutter pub add firebase_analytics
अपने प्रोजेक्ट को फिर से बनाएं:
flutter run
अगर 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()
पांचवां चरण: Remote Config बैकएंड में पैरामीटर वैल्यू सेट करना
Firebase कंसोल या रिमोट कॉन्फ़िगरेशन बैकएंड एपीआई का इस्तेमाल करके, सर्वर-साइड की नई डिफ़ॉल्ट वैल्यू बनाई जा सकती हैं. ये वैल्यू, आपकी पसंद के मुताबिक शर्त के लॉजिक या उपयोगकर्ता टारगेटिंग के हिसाब से, ऐप्लिकेशन में मौजूद वैल्यू को बदल देती हैं. इस सेक्शन में, इन वैल्यू को बनाने के लिए Firebase कंसोल में किए जाने वाले चरणों के बारे में बताया गया है.
- Firebase कंसोल में, अपना प्रोजेक्ट खोलें.
- Remote Config डैशबोर्ड देखने के लिए, मेन्यू से Remote Config चुनें.
- उन पैरामीटर के नाम से पैरामीटर तय करें जो आपने अपने ऐप्लिकेशन में तय किए हैं. हर पैरामीटर के लिए, डिफ़ॉल्ट वैल्यू सेट की जा सकती है. यह वैल्यू, ऐप्लिकेशन में मौजूद डिफ़ॉल्ट वैल्यू को बदल देगी. साथ ही, शर्तों के हिसाब से वैल्यू भी सेट की जा सकती हैं. ज़्यादा जानने के लिए, रिमोट कॉन्फ़िगरेशन पैरामीटर और शर्तें लेख पढ़ें.
छठा चरण: वैल्यू फ़ेच करना और उन्हें चालू करना
रिमोट कॉन्फ़िगरेशन बैकएंड से पैरामीटर वैल्यू फ़ेच करने के लिए,
fetch()
वाले तरीके को कॉल करें. बैकएंड में सेट की गई सभी वैल्यू, Remote Config ऑब्जेक्ट में फ़ेच और सेव की जाती हैं.फ़ेच की गई पैरामीटर वैल्यू को अपने ऐप्लिकेशन के लिए उपलब्ध कराने के लिए,
activate()
तरीके को कॉल करें.अगर आपको एक ही कॉल में वैल्यू फ़ेच और चालू करनी हैं, तो
fetchAndActivate()
अनुरोध का इस्तेमाल करके, रिमोट कॉन्फ़िगरेशन बैकएंड से वैल्यू फ़ेच की जा सकती हैं. साथ ही, उन्हें ऐप्लिकेशन के लिए उपलब्ध कराया जा सकता है:await remoteConfig.fetchAndActivate();
अपडेट की गई पैरामीटर वैल्यू से, आपके ऐप्लिकेशन के व्यवहार और लुक पर असर पड़ता है. इसलिए, आपको फ़ेच की गई वैल्यू को ऐसे समय पर चालू करना चाहिए जिससे उपयोगकर्ता को बेहतर अनुभव मिले. जैसे, जब उपयोगकर्ता अगली बार आपका ऐप्लिकेशन खोले. ज़्यादा जानकारी और उदाहरणों के लिए, Remote Config की लोडिंग रणनीतियां देखें.
सातवां चरण: रीयल टाइम में अपडेट सुनना
पैरामीटर वैल्यू फ़ेच करने के बाद, रिमोट कॉन्फ़िगरेशन बैकएंड से अपडेट पाने के लिए, रीयल-टाइम रिमोट कॉन्फ़िगरेशन का इस्तेमाल किया जा सकता है. जब अपडेट उपलब्ध होते हैं, तब Remote Config, कनेक्ट किए गए डिवाइसों को रीयल-टाइम सिग्नल भेजता है. साथ ही, Remote Config का नया वर्शन पब्लिश करने के बाद, बदलावों को अपने-आप फ़ेच करता है.
ध्यान दें कि वेब के लिए, रीयल-टाइम Remote Config उपलब्ध नहीं है.
अपने ऐप्लिकेशन में, अपडेट सुनने के लिए
onConfigUpdated
का इस्तेमाल करें. इससे नई पैरामीटर वैल्यू अपने-आप फ़ेच हो जाएंगी.remoteConfig.onConfigUpdated.listen((event) async { await remoteConfig.activate(); // Use the new config values here. });
अगली बार जब रिमोट कॉन्फ़िगरेशन का नया वर्शन पब्लिश किया जाएगा, तब आपके ऐप्लिकेशन को चलाने वाले और बदलावों को सुनने वाले डिवाइसों पर नया कॉन्फ़िगरेशन चालू हो जाएगा.
थ्रॉटलिंग
अगर कोई ऐप्लिकेशन कम समय में कई बार फ़ेच करता है, तो फ़ेच कॉल को थ्रॉटल कर दिया जाएगा. साथ ही, FirebaseRemoteConfig
की lastFetchStatus
प्रॉपर्टी की वैल्यू RemoteConfigFetchStatus.throttle
हो जाएगी.
Remote Config के लिए, फ़ेच करने का डिफ़ॉल्ट इंटरवल कम से कम 12 घंटे होता है. इसका मतलब है कि 12 घंटे की अवधि में, कॉन्फ़िगरेशन को बैकएंड से एक से ज़्यादा बार फ़ेच नहीं किया जाएगा. भले ही, फ़ेच करने के लिए कितने भी कॉल किए गए हों.
अगर ऐप्लिकेशन डेवलपमेंट के दौरान, रीयल-टाइम Remote Config का इस्तेमाल नहीं किया जा रहा है (हमारा सुझाव है कि इसका इस्तेमाल करें), तो आपको कॉन्फ़िगरेशन को बार-बार (हर घंटे में कई बार) फ़ेच और चालू करना पड़ सकता है. इससे आपको ऐप्लिकेशन डेवलप और टेस्ट करने के दौरान, तेज़ी से बदलाव करने में मदद मिलेगी. अगर किसी प्रोजेक्ट पर 10 डेवलपर काम कर रहे हैं और आपको तेज़ी से बदलाव करने हैं, तो setConfigSettings()
की मदद से, फ़ेच करने का कम से कम इंटरवल कुछ समय के लिए सेट किया जा सकता है.
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(minutes: 5),
));
अगले चरण
अगर आपने अभी तक ऐसा नहीं किया है, तो Remote Config इस्तेमाल के उदाहरण देखें. साथ ही, कुछ मुख्य कॉन्सेप्ट और बेहतर रणनीतियों से जुड़े दस्तावेज़ देखें. इनमें ये शामिल हैं: