| اختيار النظام الأساسي: | 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. يتم الحفاظ على اتصال العميل بالخادم أثناء عمل التطبيق في المقدّمة.
بما أنّ اتصال العميل بالخادم يتم عبر HTTP، لا يتطلّب ذلك أي تبعيات على مكتبات أخرى.
الاستماع إلى التعديلات
تكمّل التعديلات في الوقت الفعلي طلبات Remote Config fetch. ننصحك باستدعاء `fetch` عند بدء تشغيل تطبيقك (أو في وقت ما خلال دورة حياة تطبيقك) والاستماع إلى تعديلات Remote Config أثناء جلسة المستخدم لضمان حصولك على أحدث القيم فور نشرها على الخادم.
للاستماع إلى التعديلات، استدعِ
addOnConfigUpdateListener،
مع تنفيذ معاودة اتصال يتم استدعاؤها كلما كان هناك تعديل في Remote Config متاحًا في التطبيق. في الخلفية، يبدأ هذا الاستدعاء في الاستماع إلى التعديلات
من خادم Remote Config. لمزيد من المعلومات عن علاقة العميل بالخادم
، اطّلِع على القسم السابق.
غالبًا ما تكون معاودة الاتصال مكانًا جيدًا لاستخدام activate لإتاحة مَعلمات الإعداد المعدَّلة لتطبيقك. اطّلِع على مقالة Firebase Remote Config Loading
Strategies لمعرفة استراتيجيات إضافية لتفعيل قيم المَعلمات عند استخدام ميزة
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 وبدء الاستماع إلى التعديلات في الوقت الفعلي.