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


يمكنك استخدام ميزة "الإعداد عن بُعد في Firebase" لتحديد المَعلمات في تطبيقك وتعديل قيمها في السحابة الإلكترونية، ما يتيح لك تعديل مظهر تطبيقك ومَعلماته بدون توزيع تحديث للتطبيق. يرشدك هذا الدليل إلى خطوات البدء ويقدّم بعض عيّنات الرموز البرمجية.

الخطوة 1: إضافة Firebase وحزمة تطوير البرامج (SDK) لميزة "الإعداد عن بُعد" إلى تطبيقك

  1. ثبِّت حِزم تطوير البرامج (SDK) لمنصّة Firebase لنظام التشغيل Flutter وابدأ إعدادها إذا لم يسبق لك إجراء ذلك.

  2. بالنسبة إلى ميزة "الإعداد عن بُعد"، يجب استخدام "إحصاءات Google" من أجل الاستهداف المشروط لنسخ التطبيق الافتراضية لخصائص المستخدِمين وشرائح الجمهور. تأكّد من تفعيل "إحصاءات Google" في مشروعك.

  3. من الدليل الجذري لمشروع Flutter، عليك تشغيل الأمر التالي لتثبيت المكوّن الإضافي لميزة "الإعداد عن بُعد":

    flutter pub add firebase_remote_config
    

    بالإضافة إلى ذلك، كجزء من إعداد ميزة "الإعداد عن بُعد"، عليك إضافة حزمة تطوير البرامج (SDK) لـ Firebase لخدمة "إحصاءات Google" إلى تطبيقك:

    flutter pub add firebase_analytics
    
  4. إعادة إنشاء مشروعك:

    flutter run
    
  5. إذا كنت تستخدم ميزة "الإعداد عن بُعد" على نظام التشغيل macOS، فعِّل مشاركة سلسلة المفاتيح في Xcode.

الخطوة 2: استرجاع عنصر ميزة "الإعداد عن بُعد" في نمط "سينغلتون"

احصل على النسخة الافتراضية لعنصر "الإعداد عن بُعد" وحدِّد أقل فترة زمنية للاسترجاع من أجل السماح بإعادة التحميل بشكل متكرّر:

final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
    fetchTimeout: const Duration(minutes: 1),
    minimumFetchInterval: const Duration(hours: 1),
));

يتم استخدام العنصر الفردي لتخزين قيم المَعلمات التلقائية داخل التطبيق، وجلب قيم المَعلمات المعدَّلة من الخلفية، والتحكّم في وقت إتاحة القيم التي تم جلبها لتطبيقك.

أثناء التطوير، يُنصح بضبط حدّ أدنى منخفض نسبيًا للفاصل الزمني للجلب. يمكنك الاطّلاع على تقييد السرعة للحصول على مزيد من المعلومات.

الخطوة 3: ضبط قيم المَعلمات التلقائية داخل التطبيق

يمكنك ضبط قيم المَعلمات التلقائية داخل التطبيق في ملف "الإعداد عن بُعد"، لكي يعمل تطبيقك على النحو المطلوب قبل الاتصال بأحد ملفّات الإعداد عن بُعد الخلفية، ولكي تتوفّر القيم التلقائية في حال عدم تحديد أي قيم في الخلفية.

await remoteConfig.setDefaults(const {
    "example_param_1": 42,
    "example_param_2": 3.14159,
    "example_param_3": true,
    "example_param_4": "Hello, world!",
});

الخطوة 4: الحصول على قيم المَعلمات لاستخدامها في تطبيقك

يمكنك الآن الحصول على قيم المَعلمات من كائن "الإعداد عن بُعد". في حال ضبط القيم في الخلفية، واستعادتها، ثم تفعيلها، تصبح هذه القيم متاحة لتطبيقك. بخلاف ذلك، ستحصل على قيم المَعلمات داخل التطبيق التي تم ضبطها باستخدام setDefaults().

للحصول على هذه القيم، يمكنك استدعاء الطريقة المدرَجة أدناه التي ترتبط بنوع البيانات المتوقّع من تطبيقك، مع تقديم مفتاح المَعلمة كوسيطة:

  • getBool()
  • getDouble()
  • getInt()
  • getString()

الخطوة 5: ضبط قيم المَعلمات في الواجهة الخلفية "للإعداد عن بُعد"

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

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

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

  1. لاسترجاع قيم المعلَمات من خلفية "الإعداد عن بُعد"، يمكنك استدعاء طريقة fetch(). يتمّ استرجاع أيّ قيم تحدّدها في الخلفية وحفظها في كائن "الإعداد عن بُعد".

  2. لإتاحة قيم المَعلمات التي تم استرجاعها لتطبيقك، يمكنك استدعاء طريقة activate().

    في الحالات التي تريد فيها استرجاع القيم وتفعيلها في طلب واحد، يمكنك استخدام طلب fetchAndActivate() لاسترداد القيم من خلفية "الإعداد عن بُعد" وإتاحتها للتطبيق:

    await remoteConfig.fetchAndActivate();
    

بما أنّ قيم المَعلمات المعدَّلة هذه تؤثّر في سلوك تطبيقك ومظهره، يجب تفعيل القيم التي تم جلبها في وقت يضمن حصول المستخدم على تجربة سلسة، مثل المرة التالية التي يفتح فيها المستخدم تطبيقك. اطّلِع على استراتيجيات تحميل ميزة "الإعداد عن بُعد" لمزيد من المعلومات والأمثلة.

الخطوة 7: الاستماع إلى آخر الأخبار في الوقت الفعلي

بعد استرجاع قيم المَعلمات، يمكنك استخدام ميزة "الإعداد عن بُعد" في الوقت الفعلي للاطّلاع على آخر المعلومات من الخلفية في ميزة "الإعداد عن بُعد". تشير "الإعداد عن بُعد" في الوقت الفعلي إلى الأجهزة المتصلة عند توفُّر التحديثات، كما تعمل على استرجاع التغييرات تلقائيًا بعد نشر إصدار جديد من هذه الميزة.

ملاحظة: لا تتوفّر ميزة "الإعداد عن بُعد في الوقت الفعلي" للويب.

  1. في تطبيقك، استخدِم onConfigUpdated لبدء الاستماع إلى التعديلات و استرداد أي قيم جديدة للمَعلمات تلقائيًا.

     remoteConfig.onConfigUpdated.listen((event) async {
       await remoteConfig.activate();
    
       // Use the new config values here.
     });
    
  2. في المرة القادمة التي تنشر فيها إصدارًا جديدًا من ميزة "الإعداد عن بُعد"، سيتم تفعيل الإعدادات الجديدة على الأجهزة التي تشغّل تطبيقك وتستمع إلى التغييرات.

التقييد

إذا جلب أحد التطبيقات مرات كثيرة جدًا خلال فترة زمنية قصيرة، سيتم تقييد طلبات الجلب وستكون قيمة السمة lastFetchStatus في FirebaseRemoteConfig RemoteConfigFetchStatus.throttle.

الحد الأدنى التلقائي لفترات الاسترجاع في أداة "الإعداد عن بُعد" هو 12 ساعة، ما يعني أنّه لن يتم استرجاع الإعدادات من الخلفية أكثر من مرة في مهلة 12 ساعة، بغض النظر عن عدد طلبات الاسترجاع التي يتم إجراؤها فعليًا.

أثناء تطوير التطبيق، إذا لم تكن تستخدِم ميزة "الإعداد عن بُعد" في الوقت الفعلي (ننصحك باستخدامها)، قد تحتاج إلى استرجاع الإعدادات وتفعيلها بشكلٍ متكرّر (عدة مرات في الساعة) للسماح لك بإجراء عمليات تكرار سريعة أثناء تطوير التطبيق واختباره. لاستيعاب عمليات التكرار السريعة في مشروع يتضمّن ما يصل إلى 10 مطوّرين، يمكنك ضبط الحد الأدنى المؤقت لفترات الاسترجاع باستخدام setConfigSettings().

final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
    fetchTimeout: const Duration(minutes: 1),
    minimumFetchInterval: const Duration(minutes: 5),
));

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

يمكنك استكشاف Remote Config حالات الاستخدام، والاطّلاع على بعض مستندات المفاهيم الرئيسية والاستراتيجيات المتقدّمة، بما في ذلك: