Firebase रिमोट कॉन्फ़िगरेशन का इस्तेमाल शुरू करना


अपने ऐप्लिकेशन में पैरामीटर तय करने के लिए, Firebase Remote Config का इस्तेमाल किया जा सकता है और इससे क्लाउड में उनकी वैल्यू अपडेट हो जाती हैं. इससे, आपको लुक में बदलाव करने और ऐप्लिकेशन का अपडेट उपलब्ध कराए बिना आपके ऐप्लिकेशन के काम करने का तरीका. इस गाइड से आपको चरणों के बारे में बताना है और कुछ सैंपल कोड देना है, जिनमें से हर एक क्लोन करने या डाउनलोड करने के लिए, Firebase/क्विकस्टार्ट-जेएस GitHub रिपॉज़िटरी.

पहला चरण: Remote Config SDK टूल जोड़ना और शुरू करना

  1. यदि आपने पहले से ऐसा नहीं किया है, तो Firebase JS SDK इंस्टॉल करके, Firebase शुरू करें.

  2. 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 कंसोल

  1. पैरामीटर टैब में, मेन्यू खोलें और डिफ़ॉल्ट वैल्यू डाउनलोड करें.
  2. जब कहा जाए, तब वेब के लिए .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 कंसोल का तरीका बताता है.

  1. Firebase कंसोल में, अपना प्रोजेक्ट खोलें.
  2. Remote Config देखने के लिए, मेन्यू से Remote Config को चुनें डैशबोर्ड पर जाएं.
  3. आपके तय किए गए पैरामीटर से मिलते-जुलते नाम वाले पैरामीटर तय करें आपका ऐप्लिकेशन. हर पैरामीटर के लिए, एक डिफ़ॉल्ट वैल्यू सेट की जा सकती है (जो और इन-ऐप्लिकेशन डिफ़ॉल्ट वैल्यू को ओवरराइड कर सकता है) और सशर्त मान. इस बारे में ज़्यादा जानने के लिए, यह देखें Remote Config पैरामीटर और शर्तें.

छठा चरण: वैल्यू फ़ेच और चालू करना

  1. Remote Config बैकएंड से पैरामीटर वैल्यू फ़ेच करने के लिए, fetchConfig() तरीका. बैकएंड पर सेट की गई सभी वैल्यू फ़ेच की जाती हैं और Remote Config ऑब्जेक्ट में कैश मेमोरी में सेव किया गया.
  2. अपने ऐप्लिकेशन में फ़ेच किए गए पैरामीटर मान उपलब्ध कराने के लिए, 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 घंटे में बैकएंड से एक से ज़्यादा बार कॉन्फ़िगरेशन फ़ेच नहीं किए जाएंगे विंडो के लिए कीमत सेट कर सकती है, चाहे असल में कितने फ़ेच कॉल किए गए हों. खास तौर पर, फ़ेच करने के लिए कम से कम इंटरवल इस क्रम में तय होता है:

  1. Settings.minimumFetchIntervalMillis में मौजूद पैरामीटर.
  2. 12 घंटे की डिफ़ॉल्ट वैल्यू.

अगले चरण

अगर आपने पहले से ऐसा नहीं किया है, तो Remote Config को एक्सप्लोर करें इस्तेमाल के कुछ उदाहरण देख सकते हैं. साथ ही, अहम सिद्धांतों और बेहतर रणनीतियों के दस्तावेज़ हैं. इनमें ये शामिल हैं: