Firebase रिमोट कॉन्फ़िगरेशन का इस्तेमाल करके, अपने ऐप्लिकेशन में पैरामीटर तय किए जा सकते हैं. साथ ही, क्लाउड में उनकी वैल्यू अपडेट की जा सकती हैं. इससे, ऐप्लिकेशन का अपडेट भेजे बिना, ऐप्लिकेशन के दिखने और काम करने के तरीके में बदलाव किया जा सकता है. इस गाइड में, शुरू करने का तरीका बताया गया है. साथ ही, इसमें कुछ सैंपल कोड भी दिए गए हैं. इनमें से हर कोड का इस्तेमाल करके, firebase/quickstart-js GitHub रिपॉज़िटरी से क्लोन किया जा सकता है या उसे डाउनलोड किया जा सकता है.
पहला चरण: रिमोट कॉन्फ़िगरेशन SDK टूल जोड़ना और शुरू करना
अगर आपने पहले से ऐसा नहीं किया है, तो Firebase JS SDK टूल इंस्टॉल करें और Firebase शुरू करें.
रिमोट कॉन्फ़िगरेशन JS SDK जोड़ें और रिमोट कॉन्फ़िगरेशन शुरू करें:
Web
import { initializeApp } from "firebase/app"; import { getRemoteConfig } from "firebase/remote-config"; // TODO: Replace the following with your app's Firebase project configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... }; // Initialize Firebase const app = initializeApp(firebaseConfig); // Initialize Remote Config and get a reference to the service const remoteConfig = getRemoteConfig(app);
Web
import firebase from "firebase/compat/app"; import "firebase/compat/remote-config"; // TODO: Replace the following with your app's Firebase project configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... }; // Initialize Firebase firebase.initializeApp(firebaseConfig); // Initialize Remote Config and get a reference to the service const remoteConfig = firebase.remoteConfig();
इस ऑब्जेक्ट का इस्तेमाल, इन-ऐप्लिकेशन डिफ़ॉल्ट पैरामीटर वैल्यू को स्टोर करने, रिमोट कॉन्फ़िगरेशन बैकएंड से अपडेट की गई पैरामीटर वैल्यू फ़ेच करने, और आपके ऐप्लिकेशन में फ़ेच की गई वैल्यू उपलब्ध होने पर उन्हें कंट्रोल करने के लिए किया जाता है.
दूसरा चरण: फ़ेच करने के लिए कम से कम इंटरवल सेट करना
डेवलपमेंट के दौरान, यह सुझाव दिया जाता है कि फ़ेच का कम से कम इंटरवल सेट करें. ज़्यादा जानकारी के लिए, थ्रॉटलिंग देखें.
Web
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
Web
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
तीसरा चरण: ऐप्लिकेशन में डिफ़ॉल्ट पैरामीटर वैल्यू को सेट करना
आपके पास रिमोट कॉन्फ़िगरेशन ऑब्जेक्ट में, इन-ऐप्लिकेशन डिफ़ॉल्ट पैरामीटर वैल्यू सेट करने का विकल्प है, ताकि रिमोट कॉन्फ़िगरेशन बैकएंड से कनेक्ट होने से पहले आपका ऐप्लिकेशन उम्मीद के मुताबिक काम करे. साथ ही, बैकएंड पर कोई भी वैल्यू सेट न होने पर डिफ़ॉल्ट वैल्यू उपलब्ध हो.
Web
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
Web
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
अगर आपने रिमोट कॉन्फ़िगरेशन के बैकएंड पैरामीटर की वैल्यू पहले ही कॉन्फ़िगर कर ली हैं, तो जनरेट की गई JSON फ़ाइल डाउनलोड की जा सकती है. इसमें सभी डिफ़ॉल्ट वैल्यू शामिल होती हैं और उसे अपने ऐप्लिकेशन बंडल में शामिल किया जा सकता है:
REST
curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=JSON -o remote_config_defaults.json
Firebase कंसोल
- पैरामीटर टैब में जाकर, मेन्यू खोलें और डिफ़ॉल्ट वैल्यू डाउनलोड करें चुनें.
- जब कहा जाए, तब वेब के लिए .json चालू करें. इसके बाद, फ़ाइल डाउनलोड करें पर क्लिक करें.
नीचे दिए गए उदाहरण में, अपने ऐप्लिकेशन में डिफ़ॉल्ट वैल्यू को इंपोर्ट और सेट करने के दो अलग-अलग तरीके बताए गए हैं. पहले उदाहरण में fetch
का इस्तेमाल किया गया है, जो आपके ऐप्लिकेशन बंडल में शामिल डिफ़ॉल्ट फ़ाइल के लिए एचटीटीपी अनुरोध करेगा:
const rcDefaultsFile = await fetch('remote_config_defaults.json'); const rcDefaultsJson = await rcDefaultsFile.json(); remoteConfig.defaultConfig = rcDefaultsJson;
अगला उदाहरण require
का इस्तेमाल करता है, जो बिल्ड के समय आपके ऐप्लिकेशन में वैल्यू इकट्ठा करता है:
let rcDefaults = require('./remote_config_defaults.json'); remoteConfig.defaultConfig = rcDefaults;
चौथा चरण: अपने ऐप्लिकेशन में इस्तेमाल करने के लिए पैरामीटर वैल्यू पाना
अब रिमोट कॉन्फ़िगरेशन ऑब्जेक्ट से पैरामीटर वैल्यू हासिल की जा सकती है. अगर बाद में
बैकएंड में वैल्यू सेट की जाती हैं, उन्हें फ़ेच किया जाता है, और फिर उन्हें चालू किया जाता है, तो वे वैल्यू आपके ऐप्लिकेशन पर उपलब्ध होंगी.इन वैल्यू को पाने के लिए,
getValue()
तरीके को
कॉल करें और पैरामीटर कुंजी
को आर्ग्युमेंट के तौर पर शामिल करें.
Web
import { getValue } from "firebase/remote-config"; const val = getValue(remoteConfig, "welcome_messsage");
Web
const val = remoteConfig.getValue("welcome_messsage");
पांचवां चरण: पैरामीटर वैल्यू को सेट करना
Firebase कंसोल या रिमोट कॉन्फ़िगरेशन बैकएंड एपीआई का इस्तेमाल करके, नई सर्वर साइड डिफ़ॉल्ट वैल्यू बनाई जा सकती हैं. ये वैल्यू, आपकी पसंद के कंडिशनल लॉजिक या उपयोगकर्ता टारगेटिंग के मुताबिक, इन-ऐप्लिकेशन वैल्यू को बदलती हैं. इस सेक्शन में, इन वैल्यू को बनाने के लिए Firebase कंसोल का तरीका बताया गया है.
- Firebase कंसोल में अपना प्रोजेक्ट खोलें.
- रिमोट कॉन्फ़िगरेशन डैशबोर्ड देखने के लिए मेन्यू से रिमोट कॉन्फ़िगरेशन चुनें.
- पैरामीटर को उन्हीं नामों से परिभाषित करें, जो आपके ऐप्लिकेशन में तय किए गए पैरामीटर के हैं. हर पैरामीटर के लिए, एक डिफ़ॉल्ट वैल्यू सेट की जा सकती है (जो आखिर में इन-ऐप्लिकेशन की डिफ़ॉल्ट वैल्यू को बदल देगी. साथ ही, शर्त वाली वैल्यू भी सेट की जा सकती है. ज़्यादा जानने के लिए, रिमोट कॉन्फ़िगरेशन पैरामीटर और शर्तें सेक्शन देखें.
छठा चरण: वैल्यू फ़ेच और चालू करना
- रिमोट कॉन्फ़िगरेशन बैकएंड से पैरामीटर की वैल्यू फ़ेच करने के लिए,
fetchConfig()
तरीके को कॉल करें. बैकएंड पर सेट की गई कोई भी वैल्यू, रिमोट कॉन्फ़िगरेशन ऑब्जेक्ट में फ़ेच और कैश मेमोरी में सेव हो जाती है. - अपने ऐप्लिकेशन में फ़ेच की गई पैरामीटर वैल्यू उपलब्ध कराने के लिए,
activate()
तरीके को कॉल करें.
ऐसे मामलों के लिए, जहां आपको एक ही कॉल में वैल्यू फ़ेच और चालू करनी हैं, वहां fetchAndActivate()
का इस्तेमाल करें, जैसा कि इस उदाहरण में दिखाया गया है:
Web
import { fetchAndActivate } from "firebase/remote-config"; fetchAndActivate(remoteConfig) .then(() => { // ... }) .catch((err) => { // ... });
Web
remoteConfig.fetchAndActivate() .then(() => { // ... }) .catch((err) => { // ... });
अपडेट की गई पैरामीटर वैल्यू से, आपके ऐप्लिकेशन के काम करने के तरीके और लुक पर असर पड़ता है. इसलिए, आपको फ़ेच की गई वैल्यू को उस समय चालू करना चाहिए जिससे उपयोगकर्ताओं को बेहतर अनुभव मिल सके. जैसे, अगली बार जब उपयोगकर्ता आपका ऐप्लिकेशन खोलेगा. ज़्यादा जानकारी और उदाहरणों के लिए, रिमोट कॉन्फ़िगरेशन लोड करने की रणनीतियां देखें.
थ्रॉटलिंग
अगर कोई ऐप्लिकेशन कम समय में कई बार फ़ेच होता है, तो फ़ेच किए जाने वाले कॉल को रोका जा सकता है. ऐसे मामलों में, SDK टूल FETCH_THROTTLE
गड़बड़ी दिखाता है.
हमारा सुझाव है कि आप इस गड़बड़ी को पकड़ें और एक्स्पोनेंशियल बैकऑफ़ मोड में फिर से कोशिश करें. इसके बाद, फ़ेच करने के अनुरोधों के बीच लंबे अंतराल का इंतज़ार करें.
ऐप्लिकेशन डेवलपमेंट के दौरान, हो सकता है कि आप कैश मेमोरी को बार-बार (हर घंटे कई बार) रीफ़्रेश करना चाहें, ताकि ऐप्लिकेशन डेवलप करने और उसकी जांच करने के दौरान, आप तेज़ी से इसे दोहरा सकें. कई डेवलपर वाले प्रोजेक्ट में तेज़ी से काम करने के लिए, अपने ऐप्लिकेशन में कुछ समय के लिए ऐसी प्रॉपर्टी जोड़ें जिसके लिए कम से कम फ़ेच इंटरवल (Settings.minimumFetchIntervalMillis
) कम हो.
रिमोट कॉन्फ़िगरेशन के लिए, प्रोडक्शन फ़ेच करने का डिफ़ॉल्ट और सुझाया गया इंटरवल 12 घंटे का है. इसका मतलब है कि 12 घंटे की विंडो में, बैकएंड से एक से ज़्यादा बार कॉन्फ़िगरेशन फ़ेच नहीं किए जाएंगे. भले ही, असल में कितने भी फ़ेच कॉल किए गए हों. खास तौर पर, फ़ेच करने के लिए तय किया गया कम से कम इंटरवल इस क्रम में तय होता है:
Settings.minimumFetchIntervalMillis
में मौजूद पैरामीटर.- 12 घंटे की डिफ़ॉल्ट वैल्यू.
अगले चरण
अगर आपने अभी तक यह सुविधा नहीं देखी है, तो रिमोट कॉन्फ़िगरेशन के इस्तेमाल के उदाहरण एक्सप्लोर करें. साथ ही, कुछ अहम कॉन्सेप्ट और बेहतर रणनीतियों के दस्तावेज़ देखें, जैसे:
- रिमोट कॉन्फ़िगरेशन के टेंप्लेट के वर्शन मैनेज करना
- कॉन्टेंट लोड होने से जुड़ी रणनीतियों को कॉन्फ़िगर करना