फायरबेस रिमोट कॉन्फ़िगरेशन के साथ आरंभ करें


आप अपने ऐप में पैरामीटर्स को परिभाषित करने और क्लाउड में उनके मानों को अपडेट करने के लिए फायरबेस रिमोट कॉन्फिग का उपयोग कर सकते हैं, जिससे आप ऐप अपडेट वितरित किए बिना अपने ऐप की उपस्थिति और व्यवहार को संशोधित कर सकते हैं। यह मार्गदर्शिका आपको आरंभ करने के चरणों के बारे में बताती है और कुछ नमूना कोड प्रदान करती है, जो सभी फ़ायरबेस/क्विकस्टार्ट-जेएस गिटहब रिपॉजिटरी से क्लोन या डाउनलोड करने के लिए उपलब्ध हैं।

चरण 1: रिमोट कॉन्फिग एसडीके जोड़ें और प्रारंभ करें

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

  2. रिमोट कॉन्फिग जेएस एसडीके जोड़ें और रिमोट कॉन्फिग आरंभ करें:

वेब मॉड्यूलर एपीआई

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);

वेब नेमस्पेस्ड एपीआई

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();

इस ऑब्जेक्ट का उपयोग इन-ऐप डिफ़ॉल्ट पैरामीटर मानों को संग्रहीत करने, रिमोट कॉन्फिग बैकएंड से अद्यतन पैरामीटर मान लाने और आपके ऐप पर लाए गए मान उपलब्ध कराए जाने पर नियंत्रण करने के लिए किया जाता है।

चरण 2: न्यूनतम फ़ेच अंतराल निर्धारित करें

विकास के दौरान, अपेक्षाकृत कम न्यूनतम फ़ेच अंतराल निर्धारित करने की अनुशंसा की जाती है। अधिक जानकारी के लिए थ्रॉटलिंग देखें।

Web modular API

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

Web namespaced API

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

चरण 3: इन-ऐप डिफ़ॉल्ट पैरामीटर मान सेट करें

आप रिमोट कॉन्फिग ऑब्जेक्ट में इन-ऐप डिफ़ॉल्ट पैरामीटर मान सेट कर सकते हैं, ताकि आपका ऐप रिमोट कॉन्फिग बैकएंड से कनेक्ट होने से पहले इच्छित व्यवहार कर सके, और यदि बैकएंड पर कोई भी सेट नहीं है तो डिफ़ॉल्ट मान उपलब्ध हों।

Web modular API

remoteConfig.defaultConfig = {
  "welcome_message": "Welcome"
};

Web namespaced API

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

फायरबेस कंसोल

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

अब आप रिमोट कॉन्फिग ऑब्जेक्ट से पैरामीटर मान प्राप्त कर सकते हैं। यदि आप बाद में बैकएंड में मान सेट करते हैं, उन्हें लाते हैं, और फिर उन्हें सक्रिय करते हैं, तो वे मान आपके ऐप पर उपलब्ध होते हैं। इन मानों को प्राप्त करने के लिए, पैरामीटर कुंजी को तर्क के रूप में प्रदान करते हुए, getValue() विधि को कॉल करें।

Web modular API

import { getValue } from "firebase/remote-config";

const val = getValue(remoteConfig, "welcome_messsage");

Web namespaced API

const val = remoteConfig.getValue("welcome_messsage");

चरण 5: पैरामीटर मान सेट करें

फायरबेस कंसोल या रिमोट कॉन्फिग बैकएंड एपीआई का उपयोग करके, आप नए सर्वर-साइड डिफ़ॉल्ट मान बना सकते हैं जो आपके वांछित सशर्त तर्क या उपयोगकर्ता लक्ष्यीकरण के अनुसार इन-ऐप मानों को ओवरराइड करते हैं। यह अनुभाग आपको इन मानों को बनाने के लिए फ़ायरबेस कंसोल चरणों के बारे में बताता है।

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

चरण 6: मान प्राप्त करें और सक्रिय करें

  1. रिमोट कॉन्फिग बैकएंड से पैरामीटर मान लाने के लिए, fetchConfig() विधि को कॉल करें। आपके द्वारा बैकएंड पर सेट किया गया कोई भी मान रिमोट कॉन्फ़िगरेशन ऑब्जेक्ट में लाया और कैश किया जाता है।
  2. प्राप्त पैरामीटर मानों को अपने ऐप पर उपलब्ध कराने के लिए, activate() विधि को कॉल करें।

ऐसे मामलों के लिए जहां आप एक कॉल में मान प्राप्त करना और सक्रिय करना चाहते हैं, इस उदाहरण में दिखाए गए अनुसार fetchAndActivate() का उपयोग करें:

Web modular API

import { fetchAndActivate } from "firebase/remote-config";

fetchAndActivate(remoteConfig)
  .then(() => {
    // ...
  })
  .catch((err) => {
    // ...
  });

Web namespaced API

remoteConfig.fetchAndActivate()
  .then(() => {
    // ...
  })
  .catch((err) => {
    // ...
  });

क्योंकि ये अद्यतन पैरामीटर मान आपके ऐप के व्यवहार और स्वरूप को प्रभावित करते हैं, इसलिए आपको प्राप्त किए गए मानों को उस समय सक्रिय करना चाहिए जो आपके उपयोगकर्ता के लिए एक सहज अनुभव सुनिश्चित करता है, जैसे कि अगली बार जब उपयोगकर्ता आपका ऐप खोलता है। अधिक जानकारी और उदाहरणों के लिए रिमोट कॉन्फिग लोडिंग रणनीतियाँ देखें।

थ्रॉटलिंग

यदि कोई ऐप कम समयावधि में बहुत अधिक बार फ़ेच करता है, तो फ़ेच कॉल को रोका जा सकता है। ऐसे मामलों में, SDK एक FETCH_THROTTLE त्रुटि उत्पन्न करता है। आपको इस त्रुटि को पकड़ने और घातीय बैकऑफ़ मोड में पुनः प्रयास करने, बाद के फ़ेच अनुरोधों के बीच लंबे अंतराल की प्रतीक्षा करने की अनुशंसा की जाती है।

ऐप विकास के दौरान, हो सकता है कि आप कैश को बार-बार (प्रति घंटे कई बार) रीफ्रेश करना चाहें ताकि आप अपने ऐप को विकसित और परीक्षण करते समय तेजी से पुनरावृत्त कर सकें। कई डेवलपर्स के साथ एक परियोजना पर तेजी से पुनरावृत्ति को समायोजित करने के लिए, आप अस्थायी रूप से अपने ऐप में कम न्यूनतम फ़ेच अंतराल ( Settings.minimumFetchIntervalMillis ) के साथ एक संपत्ति जोड़ सकते हैं।

रिमोट कॉन्फिग के लिए डिफ़ॉल्ट और अनुशंसित उत्पादन फ़ेच अंतराल 12 घंटे है, जिसका अर्थ है कि कॉन्फ़िगरेशन को 12 घंटे की विंडो में एक से अधिक बार बैकएंड से फ़ेच नहीं किया जाएगा, भले ही वास्तव में कितने फ़ेच कॉल किए गए हों। विशेष रूप से, न्यूनतम फ़ेच अंतराल निम्नलिखित क्रम में निर्धारित किया जाता है:

  1. Settings.minimumFetchIntervalMillis में पैरामीटर।
  2. 12 घंटे का डिफ़ॉल्ट मान.

अगले कदम

यदि आपने पहले से ऐसा नहीं किया है, तो रिमोट कॉन्फिग उपयोग मामलों का पता लगाएं, और कुछ प्रमुख अवधारणाओं और उन्नत रणनीतियों के दस्तावेज़ों पर एक नज़र डालें, जिनमें शामिल हैं: