يمكنك استخدام Firebase Remote Config لتحديد المعلَمات في تطبيقك وتحديث قيمها في السحابة، مما يسمح لك بتعديل مظهر تطبيقك بدون توزيع تحديث للتطبيق. يرشدك هذا الدليل إلى خطوات البدء ويقدّم بعض الرموز النموذجية، ويمكن نسخها أو تنزيلها كلها من مستودع GitHub الخاص بـ firebase/quickstart-js .
الخطوة 1: إضافة حزمة تطوير البرامج (SDK) لمنصّة Remote Config وإعدادها
ثبِّت حزمة تطوير البرامج (SDK) لـ Firebase JS وفعِّل Firebase، إذا لم يسبق لك إجراء ذلك.
أضِف حزمة تطوير البرامج (SDK) لـ Remote Config JS وفعِّل 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 قيم لمَعلمات الخلفية في الخلفية، يمكنك تنزيل ملف جسون يتضمن جميع القيم التلقائية إدراجه في حِزمة التطبيق:
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
- في علامة التبويب المَعلمات، افتح القائمة، واختَر تنزيل القيم التلقائية
- فعِّل .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 أو واجهات برمجة تطبيقات الخلفية في Remote Config، يمكنك إنشاء قيم تلقائية جديدة من جهة الخادم تلغي القيم داخل التطبيق وفقًا للّ منطق الشَرطي المطلوب أو استهداف المستخدِم. هذا القسم يرشدك خلال خطوات وحدة التحكم في 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) => { // ... });
بما أنّ قيم المَعلمات المعدَّلة هذه تؤثّر في سلوك تطبيقك ومظهره، يجب تفعيل القيم التي تم جلبها في وقت يضمن حصول المستخدم على تجربة سلسة، مثل المرة التالية التي يفتح فيها المستخدم تطبيقك. اطّلِع على استراتيجيات تحميل ميزة "الإعداد عن بُعد" لمزيد من المعلومات والأمثلة.
تقييد
إذا كان التطبيق يُجري عمليات جلب كثيرة جدًا في فترة زمنية قصيرة، قد يتم
تقليل عدد طلبات الجلب. في هذه الحالات، تُعرِض حزمة تطوير البرامج (SDK) خطأ FETCH_THROTTLE
.
ننصحك برصد هذا الخطأ وإعادة المحاولة في وضع التراجع الدليلي،
مع الانتظار لفترات زمنية أطول بين طلبات الجلب اللاحقة.
أثناء تطوير التطبيق، قد تحتاج إلى تحديث ذاكرة التخزين المؤقت بشكل متكرر للغاية
(عدة مرات في الساعة) للسماح لك بالتكرار بسرعة أثناء تطوير واختبار
التطبيق. لاستيعاب التكرار السريع في مشروع مع العديد من المطورين، يمكنك
يمكن أن تضيف مؤقتًا موقع إلكتروني بحدّ أدنى منخفض من الفاصل الزمني للجلب
(Settings.minimumFetchIntervalMillis
) في تطبيقك
الفاصل الزمني التلقائي والمقترَح لاسترجاع الفيديوهات في Remote Config 12 ساعة، وبالتالي يعني أنّه لن يتم استرجاع الإعدادات من الخلفية أكثر من مرة خلال 12 ساعة بغض النظر عن عدد استدعاءات الجلب التي يتم إجراؤها بالفعل. وعلى وجه التحديد، يتم تحديد الحد الأدنى لفاصل الجلب بالترتيب التالي:
- المَعلمة في
Settings.minimumFetchIntervalMillis
- القيمة التلقائية هي 12 ساعة.
الخطوات التالية
استكشِف Remote Config، إذا لم يسبق لك إجراء ذلك. حالات الاستخدام، وإلقاء نظرة على بعض وثائق المفاهيم الرئيسية والاستراتيجيات المتقدمة، بما في ذلك: