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

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

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