توفّر 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 الخلفي بشكل دوري باستخدام الإعدادات التلقائية للنموذج الذي تم تنزيله.
الخطوات التالية
لا تشكّل هذه الاستراتيجيات الأساسية الثلاث بأي حال من الأحوال قائمة كاملة بطرق تحميل قيم الإعدادات. واستنادًا إلى احتياجاتك، يمكنك وضع استراتيجيات أكثر تعقيدًا.
راجِع مرجع واجهة برمجة التطبيقات (API) لمنصتك لمعرفة المزيد عن عمليات الاستدعاء المحدّدة لاسترداد قيم الإعدادات وتفعيلها.