يمكنك استخدام Firebase Remote Config لتحديد المعلمات في تطبيقك وتحديث قيمها في السحابة، مما يسمح لك بتعديل مظهر تطبيقك وسلوكه دون توزيع تحديث التطبيق. يرشدك هذا الدليل خلال الخطوات اللازمة للبدء ويقدم لك بعض نماذج التعليمات البرمجية.
الخطوة 1: أضف Firebase وRemote Config SDK إلى تطبيقك
قم بتثبيت وتهيئة Firebase SDKs for Flutter إذا لم تكن قد قمت بذلك بالفعل.
بالنسبة إلى Remote Config، يلزم توفر Google Analytics للاستهداف المشروط لمثيلات التطبيق لخصائص المستخدم والجماهير. تأكد من تمكين Google Analytics في مشروعك.
من الدليل الجذر لمشروع Flutter الخاص بك، قم بتشغيل الأمر التالي لتثبيت البرنامج الإضافي Remote Config:
flutter pub add firebase_remote_config
وأيضًا، كجزء من إعداد Remote Config، تحتاج إلى إضافة Firebase SDK لبرنامج Google Analytics إلى تطبيقك:
flutter pub add firebase_analytics
أعد بناء مشروعك:
flutter run
إذا كنت تستخدم Remote Config على نظام التشغيل macOS، فقم بتمكين Keychain Sharing في Xcode.
الخطوة 2: الحصول على الكائن المفرد للتكوين عن بعد
احصل على مثيل كائن التكوين عن بعد وقم بتعيين الحد الأدنى للفاصل الزمني للجلب للسماح بالتحديثات المتكررة:
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(hours: 1),
));
يتم استخدام الكائن المفرد لتخزين قيم المعلمات الافتراضية داخل التطبيق، وجلب قيم المعلمات المحدثة من الواجهة الخلفية، والتحكم في وقت إتاحة القيم التي تم جلبها لتطبيقك.
أثناء التطوير، يوصى بتعيين حد أدنى منخفض نسبيًا لفاصل الجلب. راجع التضييق للحصول على مزيد من المعلومات.
الخطوة 3: قم بتعيين قيم المعلمات الافتراضية داخل التطبيق
يمكنك تعيين قيم المعلمات الافتراضية داخل التطبيق في كائن Remote Config، بحيث يتصرف تطبيقك على النحو المنشود قبل أن يتصل بالواجهة الخلفية للتكوين عن بعد، وحتى تكون القيم الافتراضية متاحة إذا لم يتم تعيين أي منها في الواجهة الخلفية.
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 من القائمة لعرض لوحة معلومات التكوين عن بعد.
- حدد المعلمات بنفس أسماء المعلمات التي حددتها في تطبيقك. بالنسبة لكل معلمة، يمكنك تعيين قيمة افتراضية (والتي ستتجاوز في النهاية القيمة الافتراضية المقابلة داخل التطبيق)، ويمكنك أيضًا تعيين القيم الشرطية. لمعرفة المزيد، راجع معلمات وشروط التكوين عن بعد .
الخطوة 6: جلب القيم وتنشيطها
لجلب قيم المعلمات من الواجهة الخلفية للتكوين عن بعد، قم باستدعاء الأسلوب
fetch()
. يتم جلب أي قيم تقوم بتعيينها في الواجهة الخلفية وتخزينها في كائن Remote Config.لإتاحة قيم المعلمات التي تم جلبها لتطبيقك، قم باستدعاء طريقة
activate()
.بالنسبة للحالات التي تريد فيها جلب القيم وتنشيطها في مكالمة واحدة، يمكنك استخدام طلب
fetchAndActivate()
لجلب القيم من الواجهة الخلفية للتكوين عن بعد وإتاحتها للتطبيق:await remoteConfig.fetchAndActivate();
نظرًا لأن قيم المعلمات المحدثة هذه تؤثر على سلوك تطبيقك ومظهره، فيجب عليك تنشيط القيم التي تم جلبها في وقت يضمن تجربة سلسة للمستخدم، مثل المرة التالية التي يفتح فيها المستخدم تطبيقك. راجع إستراتيجيات تحميل التكوين عن بعد لمزيد من المعلومات والأمثلة.
الخطوة 7: الاستماع إلى التحديثات في الوقت الحقيقي
بعد جلب قيم المعلمات، يمكنك استخدام Remote Config في الوقت الفعلي للاستماع إلى التحديثات من الواجهة الخلفية Remote Config. يقوم Remote Config بإرسال إشارات إلى الأجهزة المتصلة عند توفر التحديثات ويجلب التغييرات تلقائيًا بعد نشر إصدار جديد من Remote Config.
لاحظ أن التكوين عن بعد في الوقت الفعلي غير متاح للويب.
في تطبيقك، استخدم
onConfigUpdated
لبدء الاستماع إلى التحديثات وجلب أي قيم معلمات جديدة تلقائيًا.remoteConfig.onConfigUpdated.listen((event) async { await remoteConfig.activate(); // Use the new config values here. });
في المرة التالية التي تقوم فيها بنشر إصدار جديد من Remote Config، ستقوم الأجهزة التي تقوم بتشغيل تطبيقك وتستمع إلى التغييرات بتنشيط التكوين الجديد.
خانق
إذا تم جلب التطبيق عدة مرات خلال فترة زمنية قصيرة، فسيتم تقييد مكالمات الجلب وستكون قيمة خاصية 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),
));
Next steps
If you haven't already, explore the Remote Config use cases , and take a look at some of the key concepts and advanced strategies documentation, including: