Firebase रिमोट कॉन्फ़िगरेशन का इस्तेमाल करके, अपने ऐप्लिकेशन में पैरामीटर तय किए जा सकते हैं और इससे क्लाउड में उनकी वैल्यू अपडेट हो जाती हैं. इससे, आपको लुक में बदलाव करने और ऐप्लिकेशन का अपडेट उपलब्ध कराए बिना आपके ऐप्लिकेशन के काम करने का तरीका. इस गाइड से आपको चरणों के बारे में बताना है और कुछ सैंपल कोड देना है, जिनमें से हर एक क्लोन करने या डाउनलोड करने के लिए, Firebase/क्विकस्टार्ट-जेएस 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 घंटे की डिफ़ॉल्ट वैल्यू.
अगले चरण
अगर आपने पहले से रिमोट कॉन्फ़िगरेशन को इस्तेमाल नहीं किया है, तो एक्सप्लोर करें इस्तेमाल के कुछ उदाहरण देखें और अहम सिद्धांतों और बेहतर रणनीतियों के दस्तावेज़ हैं. इनमें ये शामिल हैं:
- रिमोट कॉन्फ़िगरेशन के टेंप्लेट के वर्शन मैनेज करना
- कॉन्टेंट लोड होने से जुड़ी रणनीतियों को कॉन्फ़िगर करना