| प्लैटफ़ॉर्म चुनें: | iOS+ Android Web Flutter Unity C++ |
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()
पांचवां चरण: रिमोट कॉन्फ़िगरेशन बैकएंड में पैरामीटर वैल्यू सेट करना
Firebase कंसोल या रिमोट कॉन्फ़िगरेशन बैकएंड एपीआई का इस्तेमाल करके, सर्वर-साइड की नई डिफ़ॉल्ट वैल्यू बनाई जा सकती हैं. ये वैल्यू, आपकी ज़रूरत के हिसाब से तय की गई शर्तों या उपयोगकर्ता टारगेटिंग के आधार पर, इन-ऐप्लिकेशन वैल्यू को बदल देती हैं. इस सेक्शन में, इन वैल्यू को बनाने के लिए Firebase कंसोल में किए जाने वाले चरणों के बारे में बताया गया है.
Firebase console में, DevOps & Engagement > रिमोट कॉन्फ़िगरेशन पर जाएं.
अपने ऐप्लिकेशन में तय किए गए पैरामीटर के नामों के हिसाब से पैरामीटर तय करें. हर पैरामीटर के लिए, डिफ़ॉल्ट वैल्यू सेट की जा सकती है. यह वैल्यू, ऐप्लिकेशन में मौजूद डिफ़ॉल्ट वैल्यू को बदल देगी. साथ ही, शर्तों के हिसाब से वैल्यू भी सेट की जा सकती हैं. ज़्यादा जानने के लिए, रिमोट कॉन्फ़िगरेशन पैरामीटर और शर्तें लेख पढ़ें.
छठा चरण: वैल्यू फ़ेच करना और चालू करना
रिमोट कॉन्फ़िगरेशन बैकएंड से पैरामीटर वैल्यू फ़ेच करने के लिए,
fetch()तरीके को कॉल करें. बैकएंड में सेट की गई सभी वैल्यू, रिमोट कॉन्फ़िगरेशन ऑब्जेक्ट में फ़ेच और सेव की जाती हैं.फ़ेच की गई पैरामीटर वैल्यू को अपने ऐप्लिकेशन में उपलब्ध कराने के लिए,
activate()तरीके को कॉल करें.अगर आपको एक ही कॉल में वैल्यू फ़ेच और चालू करनी हैं, तो
fetchAndActivate()अनुरोध का इस्तेमाल करके, रिमोट कॉन्फ़िगरेशन बैकएंड से वैल्यू फ़ेच की जा सकती हैं. साथ ही, उन्हें ऐप्लिकेशन के लिए उपलब्ध कराया जा सकता है:await remoteConfig.fetchAndActivate();
अपडेट की गई इन पैरामीटर वैल्यू से, आपके ऐप्लिकेशन के काम करने के तरीके और लुक पर असर पड़ता है. इसलिए, आपको फ़ेच की गई वैल्यू को ऐसे समय पर चालू करना चाहिए जिससे उपयोगकर्ता को बेहतर अनुभव मिले. जैसे, जब उपयोगकर्ता अगली बार आपका ऐप्लिकेशन खोले. ज़्यादा जानकारी और उदाहरणों के लिए, रिमोट कॉन्फ़िगरेशन लोड करने की रणनीतियां देखें.
सातवां चरण: रीयल टाइम में अपडेट सुनना
पैरामीटर वैल्यू फ़ेच करने के बाद, रीयल-टाइम रिमोट कॉन्फ़िगरेशन का इस्तेमाल करके, रिमोट कॉन्फ़िगरेशन बैकएंड से अपडेट सुने जा सकते हैं. अपडेट उपलब्ध होने पर, कनेक्ट किए गए डिवाइसों को रीयल-टाइम रिमोट कॉन्फ़िगरेशन सिग्नल भेजता है. साथ ही, रिमोट कॉन्फ़िगरेशन का नया वर्शन पब्लिश करने के बाद, बदलावों को अपने-आप फ़ेच करता है.
ध्यान दें कि वेब के लिए, रीयल-टाइम रिमोट कॉन्फ़िगरेशन उपलब्ध नहीं है.
अपने ऐप्लिकेशन में, अपडेट सुनने के लिए
onConfigUpdatedका इस्तेमाल करें. इससे नई पैरामीटर वैल्यू अपने-आप फ़ेच हो जाएंगी.remoteConfig.onConfigUpdated.listen((event) async { await remoteConfig.activate(); // Use the new config values here. });अगली बार जब रिमोट कॉन्फ़िगरेशन का नया वर्शन पब्लिश किया जाएगा, तब आपके ऐप्लिकेशन का इस्तेमाल कर रहे और बदलावों को सुनने वाले डिवाइसों पर नया कॉन्फ़िगरेशन चालू हो जाएगा.
थ्रॉटलिंग
अगर कोई ऐप्लिकेशन कम समय में बहुत ज़्यादा बार डेटा फ़ेच करता है, तो फ़ेच कॉल को थ्रॉटल कर दिया जाएगा. साथ ही, 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),
));