欢迎参加我们将于 2022 年 10 月 18 日举办的 Firebase 峰会(线上线下同时进行),了解 Firebase 如何帮助您加快应用开发速度、满怀信心地发布应用,并在之后根据需要轻松地扩大应用规模。立即报名

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


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

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

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

  2. रिमोट कॉन्फिग जेएस एसडीके जोड़ें और रिमोट कॉन्फिग को इनिशियलाइज़ करें:

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

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

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

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

Web version 9

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

Web version 8

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

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

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

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

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

  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 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 कंसोल चरणों के बारे में बताता है।

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

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

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

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

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

अगले कदम

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