بدء استخدام ميزة "الإعداد عن بُعد في 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),
));

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

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