अपने ऐप्लिकेशन में पैरामीटर तय करने के लिए, Firebase Remote Config का इस्तेमाल किया जा सकता है और इससे क्लाउड में उनकी वैल्यू अपडेट हो जाती हैं. इससे, आपको लुक में बदलाव करने और ऐप्लिकेशन का अपडेट उपलब्ध कराए बिना आपके ऐप्लिकेशन के काम करने का तरीका. इस गाइड से आपको चरणों के बारे में बताना है और कुछ सैंपल कोड देना है, जिनमें से हर एक क्लोन करने या डाउनलोड करने के लिए, Firebase/क्विकस्टार्ट-जेएस GitHub रिपॉज़िटरी.
पहला चरण: Remote Config SDK टूल जोड़ना और उसे शुरू करना
यदि आपने पहले से ऐसा नहीं किया है, तो Firebase JS SDK इंस्टॉल करके, Firebase शुरू करें.
Remote Config JS SDK जोड़ें और Remote Config शुरू करें:
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();
इस ऑब्जेक्ट का इस्तेमाल, इन-ऐप्लिकेशन डिफ़ॉल्ट पैरामीटर वैल्यू को सेव करने, Remote Config बैकएंड से अपडेट की गई पैरामीटर वैल्यू को फ़ेच करने, और फ़ेच की गई वैल्यू को आपके ऐप्लिकेशन के लिए उपलब्ध कराने के समय को कंट्रोल करने के लिए किया जाता है.
दूसरा चरण: फ़ेच करने के लिए कम से कम इंटरवल सेट करना
डेवलपमेंट के दौरान, यह सुझाव दिया जाता है कि फ़ेच किए जाने की संख्या, कम से कम कितनी हो अंतराल. इसके लिए थ्रॉटलिंग देखें ज़्यादा जानकारी देखें.
Web
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
Web
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
तीसरा चरण: ऐप्लिकेशन में डिफ़ॉल्ट पैरामीटर वैल्यू सेट करना
Remote Config ऑब्जेक्ट में, इन-ऐप्लिकेशन डिफ़ॉल्ट पैरामीटर वैल्यू सेट की जा सकती हैं, ताकि Remote Config बैकएंड से कनेक्ट होने से पहले आपका ऐप्लिकेशन सही तरीके से काम करे. साथ ही, बैकएंड पर कोई वैल्यू सेट न होने पर, डिफ़ॉल्ट वैल्यू उपलब्ध हों.
Web
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
Web
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
अगर आपने पहले से ही Remote Config बैकएंड पैरामीटर की वैल्यू कॉन्फ़िगर कर ली हैं, तो जनरेट की गई 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;
चौथा चरण: अपने ऐप्लिकेशन में इस्तेमाल करने के लिए पैरामीटर वैल्यू पाना
अब Remote Config ऑब्जेक्ट से पैरामीटर की वैल्यू ली जा सकती हैं. अगर बाद में बैकएंड में वैल्यू सेट की जाती हैं, उन्हें फ़ेच किया जाता है, और फिर उन्हें चालू किया जाता है, तो वे वैल्यू आपके ऐप्लिकेशन के लिए उपलब्ध होती हैं. इन वैल्यू को पाने के लिए, getValue()
तरीके को कॉल करें. इसके लिए, पैरामीटर कुंजी को आर्ग्युमेंट के तौर पर दें.
Web
import { getValue } from "firebase/remote-config"; const val = getValue(remoteConfig, "welcome_messsage");
Web
const val = remoteConfig.getValue("welcome_messsage");
पांचवां चरण: पैरामीटर वैल्यू को सेट करना
Firebase कंसोल या Remote Config बैकएंड एपीआई, आपके पास इन-ऐप्लिकेशन वैल्यू को बदलने वाली नई सर्वर साइड डिफ़ॉल्ट वैल्यू बनाने का विकल्प है और उपयोगकर्ता टारगेटिंग के हिसाब से तय करें. इस सेक्शन में, इन वैल्यू को बनाने के लिए Firebase कंसोल के चरणों के बारे में बताया गया है.
- Firebase कंसोल में, अपना प्रोजेक्ट खोलें.
- Remote Config डैशबोर्ड देखने के लिए, मेन्यू से Remote Config चुनें.
- आपके तय किए गए पैरामीटर से मिलते-जुलते नाम वाले पैरामीटर तय करें आपका ऐप्लिकेशन. हर पैरामीटर के लिए, एक डिफ़ॉल्ट वैल्यू सेट की जा सकती है (जो और इन-ऐप्लिकेशन डिफ़ॉल्ट वैल्यू को ओवरराइड कर सकता है) और सशर्त मान. ज़्यादा जानने के लिए, Remote Config पैरामीटर और शर्तें देखें.
छठा चरण: वैल्यू फ़ेच करना और उन्हें चालू करना
- Remote Config बैकएंड से पैरामीटर वैल्यू फ़ेच करने के लिए,
fetchConfig()
तरीका. बैकएंड पर सेट की गई सभी वैल्यू, Remote Config ऑब्जेक्ट में फ़ेच और कैश मेमोरी में सेव की जाती हैं. - फ़ेच की गई पैरामीटर वैल्यू को अपने ऐप्लिकेशन के लिए उपलब्ध कराने के लिए,
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
) लोगों के लिए है.
Remote Config के लिए, डिफ़ॉल्ट और सुझाया गया प्रोडक्शन फ़ेच इंटरवल 12 घंटे का होता है. इसका मतलब है कि 12 घंटे की विंडो में, बैकएंड से कॉन्फ़िगरेशन एक से ज़्यादा बार फ़ेच नहीं किए जाएंगे. भले ही, फ़ेच करने के लिए जितने चाहे कॉल किए जाएं. खास तौर पर, कम से कम फ़ेच इंटरवल इस क्रम में तय किया जाता है:
Settings.minimumFetchIntervalMillis
में मौजूद पैरामीटर.- डिफ़ॉल्ट वैल्यू 12 घंटे.
अगले चरण
अगर आपने पहले से ऐसा नहीं किया है, तो Remote Config को एक्सप्लोर करें इस्तेमाल के कुछ उदाहरण देख सकते हैं. साथ ही, अहम सिद्धांतों और बेहतर रणनीतियों के दस्तावेज़ हैं. इनमें ये शामिल हैं: