بدء استخدام ميزة "الإعداد عن بُعد في 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، عليك تفعيل Keychain Shared في 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. اختَر الإعداد عن بُعد من القائمة لعرض لوحة بيانات الإعداد عن بُعد.
  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),
));

الخطوات اللاحقة

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