يمكنك استخدام ميزة "الإعداد عن بُعد في Firebase" لتحديد المَعلمات في تطبيقك وتعديل قيمها في السحابة الإلكترونية، ما يتيح لك تعديل مظهر تطبيقك ومَعلماته بدون توزيع تحديث للتطبيق. يرشدك هذا الدليل خلال خطوات البدء ويقدّم بعض عيّنات الرموز البرمجية.
الخطوة 1: إضافة حِزم تطوير البرامج (SDK) لمنصّة Firebase وميزة "الإعداد عن بُعد" إلى تطبيقك
ثبِّت حِزم تطوير البرامج (SDK) لمنصّة Firebase لنظام التشغيل Flutter وابدأ إعدادها إذا لم يسبق لك إجراء ذلك.
بالنسبة إلى ميزة "الإعداد عن بُعد"، يجب استخدام "إحصاءات Google" من أجل الاستهداف المشروط لنسخ التطبيق الافتراضية لخصائص المستخدِمين وشرائح الجمهور. تأكَّد من تفعيل "إحصاءات Google" في مشروعك.
من الدليل الجذر لمشروع Flutter، شغِّل العبارة التالية لتركيب المكوّن الإضافي "الإعداد عن بُعد":
flutter pub add firebase_remote_config
بالإضافة إلى ذلك، كجزء من إعداد ميزة "الإعداد عن بُعد"، عليك إضافة حزمة تطوير البرامج (SDK) لـ "إحصاءات Google" لمنصّة Firebase إلى تطبيقك:
flutter pub add firebase_analytics
إعادة إنشاء مشروعك:
flutter run
إذا كنت تستخدم ميزة "الإعداد عن بُعد" على نظام التشغيل 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 لإنشاء هذه القيم.
- في وحدة تحكُّم Firebase، افتح مشروعك.
- اختَر Remote Config (الإعداد عن بُعد) من القائمة لعرض لوحة بيانات Remote Config.
- حدِّد المَعلمات بالأسماء نفسها التي حدّدتها في تطبيقك. يمكنك ضبط قيمة تلقائية لكل مَعلمة (ستلغي هذه القيمة في النهاية القيمة التلقائية المقابلة داخل التطبيق)، ويمكنك أيضًا ضبط قيم مشروطة. لمزيد من المعلومات، اطّلِع على مَعلمات "الإعداد عن بُعد" و الشروط.
الخطوة 6: استرجاع القيم وتفعيلها
لاسترداد قيم المَعلمات من الخلفية في ميزة "الإعداد عن بُعد"، استخدِم الأسلوب
fetch()
. يتمّ استرجاع أيّ قيم تحدّدها في الخلفية وحفظها في كائن "الإعداد عن بُعد".لجعل قيم المَعلمات التي تم جلبها متاحة لتطبيقك، استخدِم الأسلوب
activate()
.في الحالات التي تريد فيها استرجاع القيم وتفعيلها في طلب واحد، يمكنك استخدام طلب
fetchAndActivate()
لاسترداد القيم من خلفية "الإعداد عن بُعد" وإتاحتها للتطبيق:await remoteConfig.fetchAndActivate();
بما أنّ قيم المَعلمات المعدَّلة هذه تؤثّر في سلوك تطبيقك ومظهره، يجب تفعيل القيم التي تم جلبها في وقت يضمن حصول المستخدم على تجربة سلسة، مثل المرة التالية التي يفتح فيها المستخدم تطبيقك. اطّلِع على استراتيجيات تحميل ميزة "الإعداد عن بُعد" لمزيد من المعلومات والأمثلة.
الخطوة 7: الاستماع إلى آخر الأخبار في الوقت الفعلي
بعد استرجاع قيم المَعلمات، يمكنك استخدام ميزة "الإعداد عن بُعد" في الوقت الفعلي للاطّلاع على آخر المعلومات من الخلفية في ميزة "الإعداد عن بُعد". تُرسِل ميزة "الضبط عن بُعد" في الوقت الفعلي إشارات إلى الأجهزة المتصلة عند توفّر تحديثات، وتسترجع التغييرات تلقائيًا بعد نشر إصدار جديد من "الضبط عن بُعد".
تجدر الإشارة إلى أنّ ميزة "الإعداد عن بُعد" في الوقت الفعلي غير متاحة للويب.
في تطبيقك، استخدِم
onConfigUpdated
لبدء الاستماع إلى التعديلات و استرداد أي قيم جديدة للمَعلمات تلقائيًا.remoteConfig.onConfigUpdated.listen((event) async { await remoteConfig.activate(); // Use the new config values here. });
في المرة التالية التي تنشر فيها إصدارًا جديدًا من ميزة "الإعداد عن بُعد"، ستفعّل الأجهزة التي ejecutant تطبيقك وتستمع إلى التغييرات الإعداد الجديد.
التقييد
إذا كان التطبيق يُجري عمليات جلب كثيرة جدًا خلال فترة زمنية قصيرة، سيتم الحد من طلبات الجلب وستكون قيمة سمة 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 حالات الاستخدام، والاطّلاع على بعض مستندات المفاهيم الرئيسية والاستراتيجيات المتقدّمة، بما في ذلك: