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

اختيار نظام أساسي: iOS+ Android Web Flutter Unity C++

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

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

لمزيد من المعلومات عن الطرق التي يمكنك من خلالها استخدام Remote Config، يُرجى الاطّلاع على المقالة ما الذي يمكنك فعله باستخدام Remote Config؟

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

  • مزيد من المعلومات عن علاقة العميل بالخادم التي تتيح التعديلات في الوقت الفعلي
  • كيفية عمل وظيفة الوقت الفعلي في حزمة تطوير البرامج (SDK)
  • كيفية استخدام التعديلات في الوقت الفعلي للحفاظ على إعداد تطبيقك محدّثًا

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

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

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

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

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

الاستماع إلى التعديلات

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

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

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

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

عند استدعاء OnConfigUpdateListener، يمكنك انتظار التغيير وتفعيله.

عند إعداد المستمع، يمكنك ضبطه لاستدعاء معالج أحداث يتم استدعاؤه كلما تم جلب إصدار جديد من النموذج تلقائيًا وعندما يتضمّن هذا الإصدار الجديد تغييرات. ConfigUpdateEventArgs تعرض configUpdate السمة updatedKeys، وهي مجموعة من مفاتيح المَعلمات التي تم تغييرها والتي بدأت التعديل في الوقت الفعلي وتتضمّن ما يلي:

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

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

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

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

OnConfigUpdateListener هي نقطة الدخول الرئيسية لميزة Remote Config في الوقت الفعلي. يؤدي استدعاء هذا المستمع لأول مرة في دورة حياة تطبيقك إلى فتح الاتصال بالخادم الخلفي. تعيد الاستدعاءات اللاحقة استخدام الاتصال نفسه، مع إرسال رسالة الإبطال الموصوفة في اتصال العميل بالخادم في الوقت الفعلي.

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

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

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

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