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

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

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

الخطوة 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();
    

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

الخطوة 7: الاستماع إلى التحديثات في الوقت الفعلي

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

يُرجى العِلم أنّ ميزة Remote Config في الوقت الفعلي غير متاحة على الويب.

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

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

التقييد

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

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

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

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

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

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