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


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

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

لمزيد من المعلومات حول طرق استخدام ميزة "الإعداد عن بُعد"، راجِع المقالة ما أهمية ميزة "الإعداد عن بُعد" بالنسبة إليك؟

في هذا الدليل، سوف:

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

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

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

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

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

بما أنّ الاتصال بخادم العميل يتم عبر HTTP، لا يحتاج إلى أي تبعيات على مكتبات أخرى.

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

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

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

غالبًا ما يكون طلب الاستدعاء مكانًا جيدًا لاستخدام activate لتوفير مَعلمات الإعدادات المعدَّلة في تطبيقك. يمكنك الاطّلاع على استراتيجيات التحميل في ميزة "الإعداد عن بُعد في Firebase" للاطّلاع على استراتيجيات إضافية لتفعيل قيم المَعلمات عند استخدام ميزة "الإعداد عن بُعد في الوقت الفعلي".

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

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

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

يتم استدعاء هذه الاستدعاءات باستخدام المعلمة configUpdate. configUpdate يحتوي على updatedKeys، وهي مجموعة من مفاتيح المَعلمات التي تم تغييرها والتي أدّت إلى بدء التعديل في الوقت الفعلي، وتتضمّن ما يلي:

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

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

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

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

addOnConfigUpdateListener هي نقطة الدخول الرئيسية لميزة "الإعداد عن بُعد في الوقت الفعلي". يؤدي استدعاء هذا المستمع لأول مرة في دورة حياة تطبيقك إلى فتح الاتصال بالخلفية. تُعيد الطلبات اللاحقة استخدام الاتصال نفسه، ما يؤدي إلى مضاعفة إرسال رسالة الإيقاف الموضّحة في اتصال خادم العميل في الوقت الفعلي.

عرضت المكالمة "تسجيل المستمع"، وهو عبارة عن طريقة تُسمّى remove:

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

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

الخطوات اللاحقة

يمكنك الاطّلاع على مقالة بدء استخدام ميزة "الإعداد عن بُعد في Firebase" لضبط هذه الميزة وبدء الاستماع إلى التعديلات في الوقت الفعلي.