شما می توانید از 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
// The default and recommended production fetch interval for Remote Config is 12 hours 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 ببینید.
اگر از شرایط سیگنال سفارشی استفاده می کنید، ویژگی ها و مقادیر آنها را تعریف کنید. مثال زیر نحوه تعریف یک شرط سیگنال سفارشی را نشان می دهد.
let customSignals = { "city": "Tokyo", "preferred_event_category": "sports" } setCustomSignals(config, customSignals);
مرحله 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
// The default and recommended production fetch interval for Remote Config is 12 hours 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
- در برگه Parameters ، منوی را باز کنید و مقادیر Dealnd Dealue را انتخاب کنید.
- در صورت درخواست ، .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 مراجعه کنید.
در صورت استفاده از شرایط سیگنال سفارشی ، ویژگی ها و مقادیر آنها را تعریف کنید. مثال زیر نحوه تعریف یک وضعیت سیگنال سفارشی را نشان می دهد.
let customSignals = { "city": "Tokyo", "preferred_event_category": "sports" } setCustomSignals(config, customSignals);
مرحله ششم: مقادیر را واکشی و فعال کنید
- برای واکشی مقادیر پارامتر از پشتی 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
. - مقدار پیش فرض 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: