شما می توانید از Firebase Remote Config برای تعریف پارامترها در برنامه خود و به روز رسانی مقادیر آنها در فضای ابری استفاده کنید و به شما امکان می دهد ظاهر و رفتار برنامه خود را بدون توزیع به روز رسانی برنامه تغییر دهید. این راهنما شما را در مراحل شروع به کار راهنمایی می کند و نمونه کدی را ارائه می دهد که همگی برای شبیه سازی یا دانلود از مخزن firebase/quickstart-js GitHub در دسترس هستند.
مرحله 1: Remote Config SDK را اضافه و مقداردهی اولیه کنید
اگر قبلاً این کار را نکردهاید، Firebase JS SDK را نصب کرده و Firebase را مقداردهی اولیه کنید .
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 و کنترل زمانی که مقادیر واکشی شده در دسترس برنامه شما قرار میگیرند، استفاده میشود.
مرحله 2: حداقل فاصله واکشی را تنظیم کنید
در طول توسعه، توصیه می شود حداقل فاصله واکشی نسبتاً کم را تنظیم کنید. برای اطلاعات بیشتر Throttling را ببینید.
Web
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
Web
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
مرحله 3: مقادیر پارامترهای پیش فرض درون برنامه را تنظیم کنید
میتوانید مقادیر پارامترهای پیشفرض درون برنامهای را در شی Remote Config تنظیم کنید، به طوری که برنامه شما قبل از اتصال به پشتیبان Remote Config همانطور که در نظر گرفته شده است رفتار کند، و اگر مقادیر پیشفرض در backend تنظیم نشده باشد، در دسترس باشند.
Web
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
Web
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
اگر قبلاً مقادیر پارامتر Backend Remote Config را پیکربندی کردهاید، میتوانید یک فایل 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
کنسول Firebase
- در برگه پارامترها ، منوی را باز کنید و مقادیر پیشفرض را دانلود کنید.
- وقتی از شما خواسته شد، 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 دریافت کنید. اگر بعداً مقادیری را در backend تنظیم کنید، آنها را واکشی کنید و سپس آنها را فعال کنید، این مقادیر برای برنامه شما در دسترس هستند. برای دریافت این مقادیر، متد getValue()
را فراخوانی کنید و کلید پارامتر را به عنوان آرگومان ارائه دهید.
Web
import { getValue } from "firebase/remote-config"; const val = getValue(remoteConfig, "welcome_messsage");
Web
const val = remoteConfig.getValue("welcome_messsage");
مرحله 5: مقادیر پارامتر را تنظیم کنید
با استفاده از کنسول Firebase یا Remote Config Backend API ، میتوانید مقادیر پیشفرض سمت سرور جدیدی ایجاد کنید که مقادیر درونبرنامه را مطابق با منطق شرطی دلخواه یا هدفگذاری کاربر لغو میکند. این بخش شما را در مراحل کنسول Firebase برای ایجاد این مقادیر راهنمایی می کند.
- در کنسول Firebase ، پروژه خود را باز کنید.
- Remote Config از منو انتخاب کنید تا داشبورد Remote Config را مشاهده کنید.
- پارامترهایی را با همان نام پارامترهایی که در برنامه خود تعریف کرده اید تعریف کنید. برای هر پارامتر، میتوانید یک مقدار پیشفرض تنظیم کنید (که در نهایت مقدار پیشفرض درون برنامه را لغو میکند) و همچنین میتوانید مقادیر شرطی را تنظیم کنید. برای کسب اطلاعات بیشتر، پارامترها و شرایط Remote Config ببینید.
مرحله 6: مقادیر را واکشی و فعال کنید
- برای واکشی مقادیر پارامتر از باطن Remote Config ، متد
fetchConfig()
را فراخوانی کنید. هر مقداری که در باطن تنظیم میکنید در شی Remote Config واکشی و ذخیره میشود. - برای در دسترس قرار دادن مقادیر پارامترهای واکشی شده برای برنامه خود، متد
activate()
را فراخوانی کنید.
برای مواردی که می خواهید مقادیر را در یک تماس واکشی و فعال کنید، از fetchAndActivate()
همانطور که در این مثال نشان داده شده است استفاده کنید:
Web
import { fetchAndActivate } from "firebase/remote-config"; fetchAndActivate(remoteConfig) .then(() => { // ... }) .catch((err) => { // ... });
Web
remoteConfig.fetchAndActivate() .then(() => { // ... }) .catch((err) => { // ... });
از آنجایی که این مقادیر پارامتر به روز شده بر رفتار و ظاهر برنامه شما تأثیر می گذارد، باید مقادیر واکشی شده را در زمانی فعال کنید که تجربه یکنواختی را برای کاربر شما تضمین کند، مانند دفعه بعد که کاربر برنامه شما را باز می کند. برای اطلاعات بیشتر و مثالها، به استراتژیهای بارگیری Remote Config مراجعه کنید.
گاز دادن
اگر یک برنامه در مدت زمان کوتاهی بارها واکشی شود، تماسهای واکشی ممکن است کاهش یابد. در چنین مواردی، SDK یک خطای FETCH_THROTTLE
ایجاد می کند. به شما توصیه میشود این خطا را دریافت کنید و در حالت عقبنشینی نمایی دوباره امتحان کنید، و فاصلههای طولانیتری بین درخواستهای واکشی بعدی منتظر بمانید.
در طول توسعه برنامه، ممکن است بخواهید حافظه نهان را به طور مکرر (در هر ساعت چند بار) بهروزرسانی کنید تا به شما اجازه دهد در حین توسعه و آزمایش برنامه خود، سریعاً تکرار کنید. برای تطبیق تکرار سریع در پروژهای با توسعهدهندگان متعدد، میتوانید به طور موقت یک ویژگی با حداقل فاصله واکشی کم ( Settings.minimumFetchIntervalMillis
) در برنامه خود اضافه کنید.
فاصله واکشی تولید پیشفرض و توصیهشده برای Remote Config 12 ساعت است، به این معنی که پیکربندیها بیش از یک بار در یک پنجره 12 ساعته از پشتیبان دریافت نمیشوند، صرف نظر از اینکه واقعاً چند تماس واکشی انجام شده است. به طور خاص، حداقل فاصله واکشی به ترتیب زیر تعیین می شود:
- پارامتر در
Settings.minimumFetchIntervalMillis
. - مقدار پیش فرض 12 ساعت.
مراحل بعدی
اگر قبلاً این کار را نکرده اید ، موارد استفاده Remote Config را کاوش کنید و به برخی از مفاهیم کلیدی و مستندات استراتژی های پیشرفته ، از جمله:
،برای تعریف پارامترها در برنامه خود می توانید از Firebase Remote Config استفاده کنید و مقادیر آنها را در ابر به روز کنید و به شما امکان می دهد بدون توزیع به روزرسانی برنامه ، ظاهر و رفتار برنامه خود را تغییر دهید. این راهنما شما را در مراحل شروع کار می کند و برخی از کد های نمونه را ارائه می دهد ، که همه آنها برای کلون یا بارگیری از مخزن GitHub Firebase/QuickStart-JS در دسترس است.
مرحله 1: Remote Config SDK را اضافه و اولیه کنید
اگر قبلاً این کار را نکرده اید ، Firebase JS SDK را نصب کرده و Firebase را اولیه کنید .
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 ، و هنگامی که مقادیر واکشی در اختیار برنامه شما قرار می گیرد ، کنترل می شود.
مرحله 2: حداقل فاصله واکشی را تنظیم کنید
در حین توسعه ، توصیه می شود فاصله کمتری نسبتاً کم تنظیم کنید. برای کسب اطلاعات بیشتر به لرزش مراجعه کنید.
Web
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
Web
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
مرحله 3: مقادیر پارامتر پیش فرض درون برنامه را تنظیم کنید
شما می توانید مقادیر پارامتر پیش فرض درون برنامه را در شیء Remote Config تنظیم کنید ، به طوری که برنامه شما قبل از اتصال به پس زمینه Remote Config ، همانطور که در نظر گرفته شده است رفتار می کند ، و در صورت تنظیم هیچ یک از مقادیر پیش فرض در دسترس است.
Web
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
Web
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
اگر قبلاً مقادیر پارامتر با حمایت Remote Config را پیکربندی کرده اید ، می توانید یک فایل 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
کنسول Firebase
- در برگه پارامترها ، منوی را باز کنید و مقادیر پیشفرض را دانلود کنید.
- در صورت درخواست ، .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
import { getValue } from "firebase/remote-config"; const val = getValue(remoteConfig, "welcome_messsage");
Web
const val = remoteConfig.getValue("welcome_messsage");
مرحله 5: مقادیر پارامتر را تنظیم کنید
با استفاده از کنسول Firebase یا API های Backend Remote Config ، می توانید مقادیر پیش فرض جدید سرور را ایجاد کنید که مقادیر درون برنامه را با توجه به منطق مشروط مورد نظر یا هدف قرار دادن کاربر غلبه می کند. این بخش شما را از طریق مراحل کنسول Firebase برای ایجاد این مقادیر طی می کند.
- در کنسول Firebase ، پروژه خود را باز کنید.
- برای مشاهده داشبورد Remote Config Remote Config از منو انتخاب کنید.
- پارامترها را با همان نام هایی با پارامترهایی که در برنامه خود تعریف کرده اید تعریف کنید. برای هر پارامتر ، می توانید یک مقدار پیش فرض (که در نهایت مقدار پیش فرض درون برنامه را نادیده می گیرد) تنظیم کنید و می توانید مقادیر شرطی را نیز تنظیم کنید. برای کسب اطلاعات بیشتر ، به پارامترها و شرایط Remote Config مراجعه کنید.
مرحله ششم: مقادیر را واکشی و فعال کنید
- برای واکشی مقادیر پارامتر از پشتی Remote Config ، با روش
fetchConfig()
تماس بگیرید. هر مقداری که در پس زمینه تنظیم کرده اید ، در شیء Remote Config قرار گرفته و ذخیره می شوند. - برای اینکه مقادیر پارامتر واکشی را در دسترس برنامه خود قرار دهید ، با روش
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 ساعته ، بدون در نظر گرفتن چند تماس واکشی در واقع ، از پس زمینه خارج نمی شوند. به طور خاص ، حداقل فاصله واکشی به ترتیب زیر تعیین می شود:
- پارامتر در
Settings.minimumFetchIntervalMillis
. minimumfetchintervalmillis. - مقدار پیش فرض 12 ساعت.
مراحل بعدی
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:
،You can use Firebase Remote Config to define parameters in your app and update their values in the cloud, allowing you to modify the appearance and behavior of your app without distributing an app update. This guide walks you through the steps to get started and provides some sample code, all of which is available to clone or download from the firebase/quickstart-js GitHub repository.
Step 1: Add and initialize the Remote Config SDK
If you haven't already, install the Firebase JS SDK and initialize Firebase .
Add the Remote Config JS SDK and initialize 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();
This object is used to store in-app default parameter values, fetch updated parameter values from the Remote Config backend, and control when fetched values are made available to your app.
Step 2: Set minimum fetch interval
During development, it's recommended to set a relatively low minimum fetch interval. See Throttling for more information.
Web
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
Web
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
Step 3: Set in-app default parameter values
You can set in-app default parameter values in the Remote Config object, so that your app behaves as intended before it connects to the Remote Config backend, and so that default values are available if none are set on the backend.
Web
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
Web
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
If you have already configured Remote Config backend parameter values, you can download a generated JSON file that includes all default values and include it in your app bundle:
استراحت
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
- در برگه پارامترها ، منوی را باز کنید و مقادیر پیشفرض را دانلود کنید.
- When prompted, enable .json for web , then click Download file .
The following examples show two different ways you could import and set default values in your app. The first example uses fetch
, which will make an HTTP request to the defaults file included in your app bundle:
const rcDefaultsFile = await fetch('remote_config_defaults.json'); const rcDefaultsJson = await rcDefaultsFile.json(); remoteConfig.defaultConfig = rcDefaultsJson;
The next example uses require
, which compiles the values into your app at build time:
let rcDefaults = require('./remote_config_defaults.json'); remoteConfig.defaultConfig = rcDefaults;
Step 4: Get parameter values to use in your app
Now you can get parameter values from the Remote Config object. If you later set values in the backend, fetch them, and then activate them, those values are available to your app.To get these values, call the getValue()
method, providing the parameter key as an argument.
Web
import { getValue } from "firebase/remote-config"; const val = getValue(remoteConfig, "welcome_messsage");
Web
const val = remoteConfig.getValue("welcome_messsage");
Step 5: Set parameter values
Using the Firebase console or the Remote Config backend APIs , you can create new server-side default values that override the in-app values according to your desired conditional logic or user targeting. This section walks you through the Firebase console steps to create these values.
- In the Firebase console , open your project.
- Select Remote Config from the menu to view the Remote Config dashboard.
- Define parameters with the same names as the parameters that you defined in your app. For each parameter, you can set a default value (which will eventually override the in-app default value) and you can also set conditional values. To learn more, see Remote Config Parameters and Conditions .
Step 6: Fetch and activate values
- To fetch parameter values from the Remote Config backend, call the
fetchConfig()
method. Any values that you set on the backend are fetched and cached in the Remote Config object. - To make fetched parameter values available to your app, call the
activate()
method.
For cases where you want to fetch and activate values in one call, use fetchAndActivate()
as shown in this example:
Web
import { fetchAndActivate } from "firebase/remote-config"; fetchAndActivate(remoteConfig) .then(() => { // ... }) .catch((err) => { // ... });
Web
remoteConfig.fetchAndActivate() .then(() => { // ... }) .catch((err) => { // ... });
Because these updated parameter values affect the behavior and appearance of your app, you should activate the fetched values at a time that ensures a smooth experience for your user, such as the next time that the user opens your app. See Remote Config loading strategies for more information and examples.
گاز دادن
If an app fetches too many times in a short time period, fetch calls may be throttled. In such cases, the SDK throws a FETCH_THROTTLE
error. You are recommended to catch this error and retry in exponential backoff mode, waiting longer intervals between subsequent fetch requests.
During app development, you might want to refresh the cache very frequently (many times per hour) to let you rapidly iterate as you develop and test your app. To accommodate rapid iteration on a project with numerous developers, you can temporarily add a property with a low minimum fetch interval ( Settings.minimumFetchIntervalMillis
) in your app.
The default and recommended production fetch interval for Remote Config is 12 hours, which means that configs won't be fetched from the backend more than once in a 12 hour window, regardless of how many fetch calls are actually made. Specifically, the minimum fetch interval is determined in the following order:
- The parameter in
Settings.minimumFetchIntervalMillis
. - The default value of 12 hours.
مراحل بعدی
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: