Catch up on highlights from Firebase at Google I/O 2023. Learn more

ابدأ مع Firebase Remote Config


يمكنك استخدام Firebase Remote Config لتحديد المعلمات في تطبيقك وتحديث قيمها في السحابة ، مما يسمح لك بتعديل مظهر وسلوك تطبيقك دون توزيع تحديث للتطبيق. يرشدك هذا الدليل خلال الخطوات للبدء ويقدم بعض نماذج التعليمات البرمجية.

الخطوة 1: أضف Firebase و Remote Config SDK إلى تطبيقك

  1. قم بتثبيت وتهيئة Firebase SDKs لـ Flutter إذا لم تكن قد قمت بذلك بالفعل.

  2. بالنسبة إلى Remote Config ، يلزم Google Analytics للاستهداف المشروط لمثيلات التطبيق لخصائص المستخدم والجماهير. تأكد من تمكين Google Analytics في مشروعك.

  3. من الدليل الجذر لمشروع Flutter الخاص بك ، قم بتشغيل الأمر التالي لتثبيت المكون الإضافي Remote Config:

    flutter pub add firebase_remote_config
    

    أيضًا ، كجزء من إعداد Remote Config ، تحتاج إلى إضافة Firebase SDK لـ Google Analytics إلى تطبيقك:

    flutter pub add firebase_analytics
    
  4. أعد بناء مشروعك:

    flutter run
    

الخطوة 2: احصل على الكائن الفردي عن بُعد

احصل على مثيل كائن Remote Config وقم بتعيين الحد الأدنى لفاصل الجلب للسماح بالتحديثات المتكررة:

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

يتم استخدام الكائن المفرد لتخزين قيم المعلمات الافتراضية داخل التطبيق ، وجلب قيم المعلمات المحدثة من الواجهة الخلفية ، والتحكم في وقت إتاحة القيم التي تم جلبها لتطبيقك.

أثناء التطوير ، يوصى بتعيين حد أدنى منخفض نسبيًا لفترة الجلب. انظر Throttling لمزيد من المعلومات.

الخطوة 3: تعيين قيم المعلمات الافتراضية داخل التطبيق

يمكنك تعيين قيم المعلمات الافتراضية داخل التطبيق في كائن Remote Config ، بحيث يتصرف تطبيقك على النحو المنشود قبل أن يتصل بالواجهة الخلفية لـ 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: احصل على قيم المعلمات لاستخدامها في تطبيقك

يمكنك الآن الحصول على قيم المعلمات من كائن Remote Config. إذا قمت بتعيين القيم في الواجهة الخلفية ، وجلبها ، ثم قم بتنشيطها ، فستتوفر هذه القيم لتطبيقك. خلاف ذلك ، يمكنك الحصول على قيم المعلمات داخل التطبيق التي تم تكوينها باستخدام setDefaults() .

للحصول على هذه القيم ، اتصل بالطريقة المدرجة أدناه التي تعين نوع البيانات الذي يتوقعه تطبيقك ، مع توفير مفتاح المعلمة كوسيطة:

  • getBool()
  • getDouble()
  • getInt()
  • getString()

الخطوة 5: تعيين قيم المعلمات في الواجهة الخلفية لـ Remote Config

باستخدام وحدة تحكم Firebase أو واجهات برمجة التطبيقات الخلفية للتكوين عن بُعد ، يمكنك إنشاء قيم افتراضية جديدة من جانب الخادم تتجاوز القيم داخل التطبيق وفقًا للمنطق الشرطي المطلوب أو استهداف المستخدم. يصف هذا القسم خطوات وحدة التحكم في Firebase لإنشاء هذه القيم.

  1. في وحدة تحكم Firebase ، افتح مشروعك.
  2. حدد Remote Config من القائمة لعرض لوحة معلومات Remote Config.
  3. حدد المعلمات بنفس الأسماء مثل المعلمات التي حددتها في تطبيقك. لكل معلمة ، يمكنك تعيين قيمة افتراضية (والتي ستتجاوز في النهاية القيمة الافتراضية داخل التطبيق المقابلة) ، ويمكنك أيضًا تعيين القيم الشرطية. لمعرفة المزيد ، راجع معلمات وشروط التكوين عن بُعد .

الخطوة 6: جلب القيم وتنشيطها

  1. لجلب قيم المعلمات من الواجهة الخلفية لـ Remote Config ، قم باستدعاء طريقة fetch() . يتم جلب أي قيم تقوم بتعيينها في الواجهة الخلفية وتخزينها في كائن Remote Config.

  2. لإتاحة قيم المعلمات التي تم جلبها لتطبيقك ، اتصل بطريقة activate() .

    في الحالات التي تريد فيها جلب القيم وتنشيطها في مكالمة واحدة ، يمكنك استخدام طلب fetchAndActivate() لجلب القيم من الواجهة الخلفية لـ Remote Config وجعلها متاحة للتطبيق:

    await remoteConfig.fetchAndActivate();
    

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

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

بعد إحضار قيم المعلمات ، يمكنك استخدام Remote Config في الوقت الفعلي للاستماع إلى التحديثات من الواجهة الخلفية لـ Remote Config. يقوم Real-time Remote Config بإشارات إلى الأجهزة المتصلة عندما تكون التحديثات متاحة ويقوم تلقائيًا بجلب التغييرات بعد نشر إصدار Remote Config جديد.

لاحظ أن "التكوين عن بُعد في الوقت الفعلي" غير متاح للويب.

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

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

خانق

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

الحد الأدنى لفاصل الجلب الافتراضي لـ Remote Config هو 12 ساعة ، مما يعني أنه لن يتم جلب التكوينات من الواجهة الخلفية أكثر من مرة في إطار 12 ساعة ، بغض النظر عن عدد استدعاءات الجلب التي تم إجراؤها بالفعل.

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

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

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

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: