आप अपने ऐप में मापदंडों को परिभाषित करने और क्लाउड में उनके मूल्यों को अपडेट करने के लिए Firebase Remote Config का उपयोग कर सकते हैं, जिससे आप ऐप अपडेट को वितरित किए बिना अपने ऐप के स्वरूप और व्यवहार को संशोधित कर सकते हैं। यह गाइड आपको आरंभ करने के चरणों के माध्यम से चलता है और कुछ नमूना कोड प्रदान करता है, जो सभी फायरबेस / क्विकस्टार्ट-जेएस गिटहब रिपॉजिटरी से क्लोन या डाउनलोड करने के लिए उपलब्ध है।
चरण 1: Remote Config SDK को जोड़ें और आरंभ करें
यदि आपके पास पहले से नहीं है, तो Firebase JS SDK इंस्टॉल करें और Firebase को इनिशियलाइज़ करें ।
Remote Config JS SDK जोड़ें और Remote Config को प्रारंभ करें:
Web version 9
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 version 8
import firebase from "firebase/app"; import "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 firebase.initializeApp(firebaseConfig); // Initialize Remote Config and get a reference to the service const remoteConfig = firebase.remoteConfig();
इस ऑब्जेक्ट का उपयोग इन-ऐप डिफ़ॉल्ट पैरामीटर मानों को संग्रहीत करने के लिए किया जाता है, Remote Config बैकएंड से अपडेट किए गए पैरामीटर मानों को प्राप्त करें, और आपके ऐप के लिए प्राप्त किए गए मान उपलब्ध कराए जाने पर नियंत्रण करें।
चरण 2: लाने के लिए न्यूनतम अंतराल सेट करें
विकास के दौरान, अपेक्षाकृत कम न्यूनतम फ़ेच अंतराल सेट करने की अनुशंसा की जाती है। अधिक जानकारी के लिए थ्रॉटलिंग देखें।
Web version 9
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
Web version 8
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
चरण 3: इन-ऐप डिफ़ॉल्ट पैरामीटर मान सेट करें
आप Remote Config ऑब्जेक्ट में इन-एप डिफ़ॉल्ट पैरामीटर मान सेट कर सकते हैं, ताकि आपका ऐप Remote Config बैकएंड से कनेक्ट होने से पहले अपेक्षित व्यवहार करे, और ताकि बैकएंड पर कोई भी सेट न होने पर डिफ़ॉल्ट मान उपलब्ध हों।
Web version 9
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
Web version 8
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
यदि आपने पहले से ही रिमोट कॉन्फिग बैकएंड पैरामीटर मानों को कॉन्फ़िगर कर लिया है, तो आप एक उत्पन्न JSON फ़ाइल डाउनलोड कर सकते हैं जिसमें सभी डिफ़ॉल्ट मान शामिल हैं और इसे अपने ऐप बंडल में शामिल करें:
आराम
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
फायरबेस कंसोल
- पैरामीटर टैब में, मेनू खोलें और डिफ़ॉल्ट मान डाउनलोड करें चुनें.
- संकेत मिलने पर, वेब के लिए .json को सक्षम करें, फिर फ़ाइल डाउनलोड करें पर क्लिक करें।
निम्नलिखित उदाहरण दो अलग-अलग तरीके दिखाते हैं जिनसे आप आयात कर सकते हैं और अपने ऐप में डिफ़ॉल्ट मान सेट कर सकते हैं। पहला उदाहरण fetch
का उपयोग करता है, जो आपके ऐप बंडल में शामिल डिफ़ॉल्ट फ़ाइल के लिए एक HTTP अनुरोध करेगा:
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;
चरण 4: अपने ऐप में उपयोग करने के लिए पैरामीटर मान प्राप्त करें
अब आप Remote Config ऑब्जेक्ट से पैरामीटर मान प्राप्त कर सकते हैं। यदि आप बाद में बैकएंड में मान सेट करते हैं, उन्हें लाते हैं, और फिर उन्हें सक्रिय करते हैं, तो वे मान आपके ऐप के लिए उपलब्ध होते हैं। इन मानों को प्राप्त करने के लिए, पैरामीटर कुंजी को तर्क के रूप में प्रदान करते हुए getValue()
विधि को कॉल करें।
Web version 9
import { getValue } from "firebase/remote-config"; const val = getValue(remoteConfig, "welcome_messsage");
Web version 8
const val = remoteConfig.getValue("welcome_messsage");
चरण 5: पैरामीटर मान सेट करें
फायरबेस कंसोल या रिमोट कॉन्फिग बैकएंड एपीआई का उपयोग करके, आप नए सर्वर-साइड डिफ़ॉल्ट मान बना सकते हैं जो आपके वांछित सशर्त तर्क या उपयोगकर्ता लक्ष्यीकरण के अनुसार इन-ऐप मानों को ओवरराइड करते हैं। यह अनुभाग इन मानों को बनाने के लिए आपको Firebase कंसोल चरणों के बारे में बताता है।
- Firebase कंसोल में, अपना प्रोजेक्ट खोलें।
- Remote Config डैशबोर्ड देखने के लिए मेनू से Remote Config चुनें।
- पैरामीटर को उन्हीं नामों से परिभाषित करें जिन्हें आपने अपने ऐप में परिभाषित किया था। प्रत्येक पैरामीटर के लिए, आप एक डिफ़ॉल्ट मान सेट कर सकते हैं (जो अंततः इन-ऐप डिफ़ॉल्ट मान को ओवरराइड कर देगा) और आप सशर्त मान भी सेट कर सकते हैं। अधिक जानने के लिए, Remote Config Parameters and Conditions देखें।
चरण 6: मान प्राप्त करें और सक्रिय करें
- Remote Config बैकएंड से पैरामीटर मान प्राप्त करने के लिए,
fetchConfig()
विधि को कॉल करें। आपके द्वारा बैकएंड पर सेट किया गया कोई भी मान Remote Config ऑब्जेक्ट में लाया और कैश किया जाता है। - प्राप्त किए गए पैरामीटर मान को अपने ऐप में उपलब्ध कराने के लिए,
activate()
विधि को कॉल करें।
उन मामलों के लिए जहां आप एक कॉल में मान प्राप्त करना और सक्रिय करना चाहते हैं, इस उदाहरण में दिखाए गए अनुसार उपयोग fetchAndActivate()
:
Web version 9
import { fetchAndActivate } from "firebase/remote-config"; fetchAndActivate(remoteConfig) .then(() => { // ... }) .catch((err) => { // ... });
Web version 8
remoteConfig.fetchAndActivate() .then(() => { // ... }) .catch((err) => { // ... });
चूंकि ये अपडेट किए गए पैरामीटर मान आपके ऐप के व्यवहार और उपस्थिति को प्रभावित करते हैं, इसलिए आपको प्राप्त किए गए मानों को एक समय में सक्रिय करना चाहिए जो आपके उपयोगकर्ता के लिए एक सहज अनुभव सुनिश्चित करता है, जैसे अगली बार जब उपयोगकर्ता आपके ऐप को खोलता है। अधिक जानकारी और उदाहरणों के लिए रिमोट कॉन्फिग लोडिंग रणनीतियों को देखें।
थ्रॉटलिंग
यदि कोई ऐप कम समय अवधि में बहुत अधिक बार फ़ेच करता है, तो फ़ेच कॉल को थ्रॉटल किया जा सकता है। ऐसे मामलों में, SDK FETCH_THROTTLE
त्रुटि देता है। आपको इस त्रुटि को पकड़ने और एक्सपोनेंशियल बैकऑफ़ मोड में पुनः प्रयास करने की अनुशंसा की जाती है, बाद के फ़ेच अनुरोधों के बीच लंबे अंतराल की प्रतीक्षा करते हुए।
ऐप डेवलपमेंट के दौरान, हो सकता है कि आप अपने ऐप को डेवलप और टेस्ट करते समय तेज़ी से पुनरावृति करने के लिए कैशे को बार-बार (प्रति घंटे कई बार) रीफ़्रेश करना चाहें। कई डेवलपर्स के साथ एक परियोजना पर तेजी से पुनरावृत्ति को समायोजित करने के लिए, आप अपने ऐप में अस्थायी रूप से कम न्यूनतम फ़ेच अंतराल ( Settings.minimumFetchIntervalMillis
) के साथ एक संपत्ति जोड़ सकते हैं।
Remote Config के लिए डिफ़ॉल्ट और अनुशंसित उत्पादन लाने का अंतराल 12 घंटे है, जिसका अर्थ है कि कॉन्फ़िगरेशन 12 घंटे की विंडो में एक से अधिक बार बैकएंड से नहीं लाया जाएगा, भले ही वास्तव में कितने कॉल किए गए हों। विशेष रूप से, न्यूनतम फ़ेच अंतराल निम्न क्रम में निर्धारित किया जाता है:
-
Settings.minimumFetchIntervalMillis
में पैरामीटर। - 12 घंटे का डिफ़ॉल्ट मान।
Next steps
If you haven't already, explore the Remote Config use cases , and take a look at some of the key concepts and advanced strategies documentation, including: