ابدأ مع Firebase Remote Config

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

قم بإضافة وتهيئة Remote Config SDK

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

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

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

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

تعيين الحد الأدنى لفترة الجلب

أثناء التطوير ، يوصى بتعيين حد أدنى منخفض نسبيًا للفاصل الزمني للجلب. انظر Throttling لمزيد من المعلومات.

Web version 9

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

Web version 8

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

تعيين قيم المعلمات الافتراضية داخل التطبيق

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

Web version 9

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

Web version 8

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;

احصل على قيم المعلمات لاستخدامها في تطبيقك

يمكنك الآن الحصول على قيم المعلمات من كائن Remote Config. إذا قمت لاحقًا بتعيين القيم في الواجهة الخلفية ، وجلبها ، ثم تنشيطها ، فستتوفر هذه القيم لتطبيقك. للحصول على هذه القيم ، اتصل 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");

تعيين قيم المعلمات

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

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

إحضار القيم وتنشيطها

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

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

خانق

إذا تم جلب التطبيق مرات عديدة في فترة زمنية قصيرة ، فقد يتم تقييد جلب المكالمات. في مثل هذه الحالات ، تعرض SDK خطأ FETCH_THROTTLE . من المستحسن اكتشاف هذا الخطأ وإعادة المحاولة في وضع التراجع الأسي ، والانتظار لفترات أطول بين طلبات الجلب اللاحقة.

أثناء تطوير التطبيق ، قد ترغب في تحديث ذاكرة التخزين المؤقت بشكل متكرر (عدة مرات في الساعة) للسماح لك بالتكرار بسرعة أثناء تطوير التطبيق واختباره. لاستيعاب التكرار السريع في مشروع مع العديد من المطورين ، يمكنك إضافة خاصية بشكل مؤقت مع حد أدنى منخفض للفاصل الزمني للجلب ( Settings.minimumFetchIntervalMillis ) في تطبيقك.

الفاصل الزمني لجلب الإنتاج الافتراضي والموصى به لـ Remote Config هو 12 ساعة ، مما يعني أنه لن يتم جلب التكوينات من الواجهة الخلفية أكثر من مرة في إطار 12 ساعة ، بغض النظر عن عدد استدعاءات الجلب التي تم إجراؤها بالفعل. على وجه التحديد ، يتم تحديد الحد الأدنى لفترة الجلب بالترتيب التالي:

  1. المعلمة في Settings.minimumFetchIntervalMillis .
  2. القيمة الافتراضية 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: