استراتيجيات تحميل Firebase Remote Config

يوفر 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: تحميل قيم جديدة لبدء التشغيل التالي

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

  1. عند بدء التشغيل، قم بتنشيط القيم التي تم جلبها مسبقًا على الفور. ينطبق هذا على أي قيم قمت بتنزيلها من الخادم في جلسة سابقة، ويتم ذلك بشكل فوري تقريبًا.
  2. أثناء تفاعل المستخدم مع تطبيقك، ابدأ مكالمة غير متزامنة لجلب قيم جديدة وفقًا للحد الأدنى الافتراضي للفاصل الزمني للجلب وأضف مستمع تحديث التكوين في الوقت الفعلي. سيقوم المستمع في الوقت الفعلي تلقائيًا بجلب أي قيم منشورة على الخادم أثناء تشغيل تطبيقك. تتجاوز التحديثات في الوقت الفعلي إعداد الحد الأدنى للفاصل الزمني للجلب.
  3. في معالج الإكمال أو رد الاتصال لاستدعاء الجلب، لا تفعل شيئًا. سيحتفظ تطبيقك بالقيم التي تم تنزيلها حتى تقوم بتنشيطها في المرة التالية التي يبدأ فيها تشغيل التطبيق.

باستخدام هذه الإستراتيجية، يتم تقليل وقت انتظار المستخدم إلى حد كبير. يؤدي الجمع بين إستراتيجيات الجلب والاستماع في الوقت الفعلي مع مكالمات activate() حسب الحاجة في دورة حياة التطبيق إلى التأكد من حصول المستخدمين على أحدث القيم من Remote Config أثناء تفاعلهم مع تطبيقك.

تحميل الاستراتيجيات المضادة

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

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

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

لا تتضمن هذه الاستراتيجيات الأساسية الثلاثة بأي حال من الأحوال قائمة كاملة بطرق تحميل قيم التكوين. اعتمادا على احتياجاتك، يمكنك ابتكار استراتيجيات أكثر تطورا.

تحقق من مرجع واجهة برمجة التطبيقات لنظامك الأساسي لمعرفة المزيد حول الاستدعاءات المحددة لجلب قيم التكوين وتنشيطها.