بدء استخدام ميزة "الإعداد عن بُعد في Firebase"


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

الخطوة 1: إضافة حزمة تطوير البرامج (SDK) لنظام التشغيل Remote Config وإعدادها

  1. إذا لم تكن قد قمت بذلك بالفعل، تثبيت حزمة تطوير البرامج (SDK) لـ Firebase JS وإعداد Firebase

  2. أضِف حزمة تطوير البرامج (SDK) JavaScript لنظام التشغيل Remote Config وإعداد 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، وبالتالي تتوفر القيم التلقائية إذا لم يتم تعيين أي منها في الخلفية.

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)

  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: الحصول على قيم المَعلمات لاستخدامها في تطبيقك

يمكنك الآن الحصول على قيم المَعلمات من الكائن 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 لإنشاء هذه القيم.

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

الخطوة 6: استرجاع القيم وتفعيلها

  1. لاسترجاع قيم المعلَمات من الواجهة الخلفية Remote Config، يمكنك طلب fetchConfig() . يتم استرجاع أي قيم قمت بتعيينها في الخلفية تم تخزينها مؤقتًا في الكائن Remote Config.
  2. لإتاحة قيم المَعلمات التي تم استرجاعها لتطبيقك، اطلب 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 ساعة بغض النظر عن عدد استدعاءات الجلب التي يتم إجراؤها بالفعل. وعلى وجه التحديد، يتم تحديد الحد الأدنى للفاصل الزمني للجلب بالترتيب التالي:

  1. المَعلمة في Settings.minimumFetchIntervalMillis.
  2. القيمة التلقائية هي 12 ساعة.

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

استكشِف Remote Config، إذا لم يسبق لك إجراء ذلك. حالات الاستخدام، وإلقاء نظرة على بعض وثائق المفاهيم الرئيسية والاستراتيجيات المتقدمة، بما في ذلك: