توفّر Firebase Remote Config الكثير من المرونة في ما يتعلّق بطريقة ووقت استرداد القيم الجديدة من الخادم وتفعيلها في تطبيقك، ما يتيح لك ضمان تقديم تجربة عالية الجودة للمستخدمين النهائيين من خلال التحكّم في توقيت أي تغييرات مرئية في الإعدادات. يمكنك جلب قيم جديدة عند تشغيل التطبيق باستخدام
fetchAndActivate، واستخدام الوقت الفعلي
Remote Config كطريقة تكميلية
لجلب أحدث قيم المَعلمات تلقائيًا بعد نشر إصدار جديد من Remote Config.
يتناول هذا الدليل بعض استراتيجيات التحميل ويناقش الاعتبارات الرئيسية لاختيار الخيار الأفضل لتطبيقك.
الاستراتيجية 1: استرجاع المَعلمات وتفعيلها عند التحميل
في هذه الاستراتيجية، سيطلب تطبيقك fetchAndActivate() عند بدء تشغيل تطبيقك للمرة الأولى لجلب قيم جديدة من Remote Config وتفعيلها فور انتهاء تحميلها. يعمل هذا الأسلوب البسيط بشكل جيد مع تغييرات الإعدادات التي لا تؤدي إلى أي تغييرات مرئية كبيرة في واجهة المستخدم. تجنَّب هذا الأسلوب في أي حالة قد تتغير فيها واجهة المستخدم بشكل ملحوظ أثناء استخدام المستخدمين لها.
بعد أن يستدعي تطبيقك الدالة fetchAndActivate()، يمكنه البدء في الاستماع إلى التعديلات على قيم المَعلمات في الوقت الفعلي من خلال استدعاء الدالة addOnConfigUpdateListener. تبدأ هذه الطريقة في الاستماع إلى أي تعديلات على قيم المَعلمات من جهة الخادم، وتسترجعها تلقائيًا، ثم تستدعي أداة المعالجة. تتمثّل إحدى الاستراتيجيات البسيطة في تفعيل القيم الجديدة في المستمع. ومع ذلك، كما ذكرنا في ما يخص fetchAndActivate()،
يجب تجنُّب التفعيل الفوري لواجهات المستخدم الحسّاسة.
الاستراتيجية 2: التفعيل في الخلفية أثناء عرض شاشة التحميل
كحلّ لمشكلة واجهة المستخدم المحتملة التي قد تحدث في الاستراتيجية 1، يمكنك الاعتماد على شاشة تحميل. بدلاً من بدء تشغيل تطبيقك على الفور، اعرض شاشة تحميل واستدعِ fetchAndActivate في معالج الإكمال. بعد ذلك مباشرةً، استخدِم دالة رد الاتصال أو الإشعار لإغلاق شاشة التحميل والسماح للمستخدم بالتفاعل مع تطبيقك.
في حال استخدام هذه الاستراتيجية، ننصحك بإضافة مهلة إلى شاشة التحميل. قد تكون مهلة الدقيقة الواحدة في "الإعداد عن بُعد" طويلة جدًا بالنسبة إلى تجربة بدء تشغيل تطبيق عالي الجودة للمستخدمين.
تتلاءم هذه الاستراتيجية مع الاستماع إلى Remote Config التحديثات في الوقت الفعليaddOnConfigUpdateListener من خلال الاتصال. أضِف أداة معالجة الأحداث عندما يتم عرض شاشة التحميل، ثم استخدِم activate() في نقطة واحدة أو أكثر في تطبيقك حيث لن تتسبّب قيم Remote Config في حدوث تغييرات مرئية كبيرة.
الاستراتيجية 3: تحميل قيم جديدة عند بدء التشغيل التالي
تتمثّل إحدى الاستراتيجيات الفعّالة في تحميل قيم الإعدادات الجديدة لتفعيلها عند بدء تشغيل تطبيقك التالي. في هذه الاستراتيجية، يفعّل تطبيقك القيم التي تم جلبها عند بدء التشغيل قبل محاولة جلب قيم جديدة، وذلك على افتراض أنّه ربما يكون قد جلب بالفعل قيم إعدادات جديدة ولكن لم يفعّلها بعد. ترتيب العمليات لهذه الاستراتيجية هو:
- عند بدء التشغيل، فعِّل على الفور القيم التي تم استرجاعها سابقًا. ينطبق ذلك على أي قيم نزّلتها من الخادم في جلسة سابقة، ويتم ذلك بشكل فوري تقريبًا.
- أثناء تفاعل المستخدم مع تطبيقك، ابدأ طلبًا غير متزامن لجلب قيم جديدة وفقًا للحد الأدنى التلقائي لفاصل الجلب الزمني، وأضِف أداة معالجة لتعديل الإعدادات في الوقت الفعلي. سيجلب المستمع في الوقت الفعلي تلقائيًا أي قيم يتم نشرها على الخادم أثناء تشغيل تطبيقك. تتجاوز التعديلات في الوقت الفعلي إعداد الحدّ الأدنى للفاصل الزمني بين عمليات الجلب.
- في معالج الإكمال أو دالة الرجوع الخاصة بطلب الجلب، لا تفعل أي شيء. سيحتفظ تطبيقك بالقيم التي تم تنزيلها إلى أن تفعّلها في المرة التالية التي يتم فيها تشغيل التطبيق.
باستخدام هذه الاستراتيجية، يتم تقليل وقت انتظار المستخدم بشكل كبير. يضمن الجمع بين استراتيجيتَي الجلب والاستماع في الوقت الفعلي مع طلبات activate() حسب الحاجة في دورة حياة التطبيق حصول المستخدمين على أحدث القيم من Remote Config أثناء تفاعلهم مع تطبيقك.
استراتيجيات التحميل المضاد
استنادًا إلى الأقسام السابقة من استراتيجيات التحميل، تجنَّب أنماط الاستخدام التالية:
- لا تعدِّل أو تبدِّل جوانب واجهة المستخدم أثناء عرض المستخدم لها أو تفاعله معها، إلا إذا كان لديك أسباب وجيهة متعلقة بالتطبيق أو النشاط التجاري، مثل إزالة خيارات مرتبطة بعرض ترويجي انتهى للتو.
- لا ترسِل أعدادًا كبيرة من طلبات الاسترجاع المتزامنة، لأنّ ذلك قد يؤدي إلى أن يقيّد الخادم تطبيقك. إذا كنت بحاجة إلى استرجاع التحديثات بشكل متكرر، استخدِم الوقت الفعلي Remote Config. على الرغم من أنّ خطر تقييد عدد الطلبات منخفض في معظم سيناريوهات الإنتاج، يمكن أن يشكّل مشكلة أثناء التطوير النشط، وقد تم تصميم Remote Config في الوقت الفعلي لحالة الاستخدام هذه. اطّلِع على إرشادات التقييد.
- لا تعتمد على الاتصال بالشبكة للحصول على قيم Remote Config. احرص على ضبط قيم المَعلمات التلقائية داخل التطبيق لكي يتصرف تطبيقك دائمًا على النحو المتوقّع. يمكنك بشكل دوري إبقاء القيم التلقائية للتطبيق والخادم الخلفي Remote Config متزامنة باستخدام الإعدادات التلقائية للنموذج الذي تم تنزيله.
الخطوات التالية
لا تشكّل هذه الاستراتيجيات الأساسية الثلاث بأي حال من الأحوال قائمة كاملة بطرق تحميل قيم الإعدادات. واستنادًا إلى احتياجاتك، يمكنك وضع استراتيجيات أكثر تعقيدًا.
راجِع مرجع واجهة برمجة التطبيقات لمنصتك لمعرفة المزيد عن عمليات الاستدعاء المحدّدة لاسترداد قيم الإعدادات وتفعيلها.