ابدأ باستخدام Firebase Remote Config


يمكنك استخدام Firebase Remote Config لتحديد المعلمات في تطبيقك وتحديث قيمها في السحابة، مما يسمح لك بتعديل مظهر تطبيقك وسلوكه دون توزيع تحديث التطبيق. يرشدك هذا الدليل خلال الخطوات اللازمة للبدء ويقدم بعض نماذج التعليمات البرمجية، وكلها متاحة للاستنساخ أو التنزيل من مستودع firebase/quickstart-js GitHub.

الخطوة 1: إضافة وتهيئة Remote Config SDK

  1. إذا لم تكن قد قمت بذلك بالفعل، فقم بتثبيت Firebase JS SDK وقم بتهيئة Firebase .

  2. أضف Remote Config JS SDK وقم بتهيئة Remote Config:

واجهة برمجة تطبيقات الويب المعيارية

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: قم بتعيين قيم المعلمات الافتراضية داخل التطبيق

يمكنك تعيين قيم المعلمات الافتراضية داخل التطبيق في كائن Remote Config، بحيث يتصرف تطبيقك على النحو المنشود قبل أن يتصل بالواجهة الخلفية للتكوين عن بعد، وحتى تكون القيم الافتراضية متاحة إذا لم يتم تعيين أي منها على الواجهة الخلفية.

Web modular API

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

Web namespaced API

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

  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: تعيين قيم المعلمات

باستخدام وحدة تحكم Firebase أو واجهات برمجة التطبيقات الخلفية للتكوين عن بعد ، يمكنك إنشاء قيم افتراضية جديدة من جانب الخادم تتجاوز القيم داخل التطبيق وفقًا للمنطق الشرطي المطلوب أو استهداف المستخدم. يرشدك هذا القسم خلال خطوات وحدة تحكم Firebase لإنشاء هذه القيم.

  1. في وحدة تحكم Firebase ، افتح مشروعك.
  2. حدد Remote Config من القائمة لعرض لوحة معلومات التكوين عن بعد.
  3. حدد المعلمات بنفس أسماء المعلمات التي حددتها في تطبيقك. بالنسبة لكل معلمة، يمكنك تعيين قيمة افتراضية (والتي ستتجاوز في النهاية القيمة الافتراضية داخل التطبيق) ويمكنك أيضًا تعيين قيم شرطية. لمعرفة المزيد، راجع معلمات وشروط التكوين عن بعد .

الخطوة 6: جلب القيم وتنشيطها

  1. لجلب قيم المعلمات من الواجهة الخلفية للتكوين عن بعد، قم باستدعاء الأسلوب fetchConfig() . يتم جلب أي قيم تقوم بتعيينها على الواجهة الخلفية وتخزينها مؤقتًا في كائن Remote Config.
  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 ساعة.

الخطوات التالية

إذا لم تكن قد لم تقم بالفعل ، فاستكشف حالات استخدام التكوين عن بُعد ، وألقي نظرة على بعض المفاهيم الرئيسية والوثائق المتقدمة ، بما في ذلك: