التعرّف على ميزة "الإعداد عن بُعد في الوقت الفعلي"


تتيح لك ميزة Remote Config في الوقت الفعلي تلقّي مفاتيح وقيم المَعلمات المعدَّلة فور نشرها على الخادم. يتيح لك ذلك تعديل أي نوع من سمات التطبيق التي يتم التحكّم فيها باستخدام قيمة مَعلمة Remote Config بسرعة. من خلال ميزة "تعديلات Remote Config في الوقت الفعلي"، يمكنك إجراء ما يلي:

  • يمكنك تقليل المخاطر من خلال طرح الميزات بشكل تدريجي للمستخدمين المستهدَفين، و إجراء عملية التراجع في حالات الطوارئ إذا لزم الأمر.
  • يمكنك زيادة تفاعل المستخدمين من خلال تخصيص تجاربهم بسرعة أثناء استخدامهم التطبيق. على سبيل المثال، يمكنك تعديل إعلانات البانر وتقديم حوافز ل المستخدمين الذين يتطابقون مع خصائص Google Analytics مستخدمين معيّنة أو ضبط صعوبة اللعبة ديناميكيًا للمجموعات النموذجية من اللاعبين.
  • تقليل التبعيات في عملية الإنشاء وزيادة إنتاجية المطوّرين: استخدِم مَعلمات Remote Config كعلامات ميزات لعرض الوظائف أمام فِرق التطوير والاختبار، مع إبقائها مخفية عن المستخدمين في مرحلة الإصدار العلني.

للمزيد من المعلومات حول الطرق التي يمكنك من خلالها استخدام Remote Config، اطّلِع على مقالة ما هي الإجراءات التي يمكنك اتّخاذها باستخدام Remote Config؟.

في هذا الدليل، ستتعرّف على ما يلي:

  • اطّلِع على مزيد من المعلومات عن العلاقة بين العميل والخادم التي تتيح تعديلات في الوقت الفعلي.
  • فهم آلية عمل الوظائف في الوقت الفعلي في حزمة SDK
  • تعرَّف على كيفية استخدام التعديلات في الوقت الفعلي للحفاظ على حداثة إعدادات تطبيقك.

الاتصال بين العميل والخادم في الوقت الفعلي

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

إذا كان الخادم يستخدم إصدارًا أحدث، يُرسِل إشارة الإبطال على الفور. وإذا لم يكن لديه إصدار أحدث، يبقى الاتصال مفتوحًا وينتظر إلى أن يتم نشر إصدار على الخادم. عندما يتلقّى حِزم تطوير البرامج (SDK) للعملاء إشارة إبطال، يتم جلبها تلقائيًا، ثم يتم استدعاء دالة الاستدعاء المسجَّلة للمستمع عند فتح اتصال المستمع. يشبه هذا الاسترجاع طلب minimumFetchInterval الذي يمكنك إجراؤه باستخدام حزمة SDK، ولكنه يتجاوز أي إعدادات minimumFetchInterval أو ميزة تخزين مؤقت. يتم الحفاظ على اتصال العميل بالخادم عندما يكون التطبيق في المقدّمة.

سير عمل خادم "الإعداد عن بُعد" في الوقت الفعلي مع العميل
سير العمل بين العميل والخادم في الوقت الفعلي Remote Config

وبما أنّ الاتصال بين العميل والخادم يتم من خلال بروتوكول HTTP، لا يتطلّب ذلك أي تبعية للمكتبات الأخرى.

الاستماع إلى آخر الأخبار

تُكمل التعديلات في الوقت الفعلي مكالمات Remote Config fetch. ننصحك باستدعاء fetch عند بدء تشغيل تطبيقك (أو في وقت ما أثناء دورة حياة تطبيقك) والاستماع إلى آخر تعديلات Remote Config في الوقت الفعلي أثناء جلسة المستخدم لضمان حصولك على أحدث القيم فور نشرها على الخادم.

للاطّلاع على آخر الأخبار، يمكنك الاتصال بـ addOnConfigUpdateListener، وتنفيذ طلب استدعاء يتمّ تشغيله عند توفّر تحديث Remote Config في التطبيق. ويبدأ هذا الطلب في الخلفية بالبحث عن آخر الأخبار من خادم Remote Config. لمعرفة مزيد من المعلومات عن علاقته العميل بالخادم، يُرجى الاطّلاع على القسم السابق.

غالبًا ما يكون المُعلِم المُعاد الاتصال به مكانًا جيدًا لاستخدام activate لتوفير مَعلمات الإعداد المعدَّلة لتطبيقك. اطّلِع على استراتيجيات تحميل Remote Config في Firebase للاطّلاع على استراتيجيات إضافية لتفعيل قيم المَعلمات عند استخدام Remote Config في الوقت الفعلي.

تفعيل قِيم المَعلمات بشكل انتقائي

عند الاتصال بالرقم: addOnConfigUpdateListener، يمكنك انتظار التغيير وتفعيله.

يتمّ استدعاء دالة الاستدعاء onUpdate عند جلب إصدار جديد من النموذج تلقائيًا وعند إجراء تغييرات على قيم المَعلمات المفعّلة حاليًا في التطبيق.

يتمّ استدعاء هذه الوظائف المُعاد الاتصال بها باستخدام المَعلمة configUpdate. يحتويconfigUpdate على updatedKeys، وهي مجموعة مفاتيح المَعلمات التي تم تغييرها والتي بدأت عملية التحديث في الوقت الفعلي، وتشمل ما يلي:

  • مفاتيح المَعلمات التي تمت إضافتها أو إزالتها
  • مفاتيح المَعلمات التي تغيّرت قيمها
  • مفاتيح المَعلمات التي تغيّرت بياناتها الوصفية (على سبيل المثال، Remote Config معلومات التخصيص)
  • مفاتيح المَعلمات التي تغيّر مصدر قيمها (على سبيل المثال، تعديل قيمة تلقائية داخل التطبيق إلى قيمة من جهة الخادم)

إذا كنت تستخدِم مستمعًا في الوقت الفعلي في عرض معيّن داخل تطبيقك، يمكنك التحقّق مما إذا كانت المَعلمات ذات الصلة بهذا العرض قد تغيّرت قبل التفعيل.

في بعض الأحيان، لا يؤدي استرجاع البيانات (إما عند استدعاء أسلوب fetch أو باستخدام Remote Config في الوقت الفعلي) إلى تعديل البيانات في العميل. في هذه الحالات، لن يتم استدعاء الأسلوب أو اكتمال الإجراء onUpdate .

إضافة مستمعين وإزالتهم

addOnConfigUpdateListener هي نقطة الدخول الرئيسية إلى Remote Config في الوقت الفعلي. يؤدي استدعاء هذا المستمع للمرة الأولى في دورة حياة تطبيقك إلى فتح الاتصال بالخلفية. تعيد المكالمات اللاحقة استخدام الاتصال نفسه، ما يؤدي إلى تعدد إرسال رسائل الإبطال описанة في اتصال العميل بالخادم في الوقت الفعلي.

تُرجِع المكالمة "تسجيل مستمع"، الذي يحتوي على طريقة تُسمى remove.

لإيقاف الاستماع، يمكنك تخزين مرجع تسجيل المستمع. اتصل بالرقم remove لإيقاف التسجيل. إذا كان المُستمع الوحيد المسجَّل، يؤدي استدعاء remove إلى إغلاق الاتصال المباشر بالخادم.

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

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

اطّلِع على مقالة البدء في استخدام Firebase Remote Config لضبط Remote Config والبدء في الاستماع إلى آخر الأخبار في الوقت الفعلي.