Estrategias de carga de Firebase Remote Config

Firebase Remote Config brinda mucha flexibilidad sobre cómo y cuándo obtener nuevos valores del servidor y activarlos en su aplicación, lo que le permite garantizar una experiencia de usuario final de calidad al controlar el tiempo de cualquier cambio de configuración visible. Puede recuperar nuevos valores al iniciar la aplicación usando fetchAndActivate() y utilizar Remote Config en tiempo real como método complementario para recuperar automáticamente los valores de parámetros más recientes después de que se publique una nueva versión de Remote Config.

Esta guía analiza algunas estrategias de carga y analiza consideraciones clave para elegir la mejor opción para su aplicación.

Estrategia 1: recuperar y activar al cargar

En esta estrategia, su aplicación llamaría a fetchAndActivate() cuando se inicie por primera vez para obtener nuevos valores de Remote Config y activarlos tan pronto como terminen de cargarse. Este enfoque simple funciona bien para cambios de configuración que no causan cambios visuales dramáticos en su interfaz de usuario. Debe evitarse en cualquier situación en la que su interfaz de usuario pueda cambiar notablemente mientras los usuarios están usándola.

Después de que su aplicación llame a fetchAndActivate() , puede comenzar a escuchar las actualizaciones de los valores de los parámetros en tiempo real llamando addOnConfigUpdateListener . Este método comienza a escuchar las actualizaciones del lado del servidor de los valores de los parámetros, las recupera automáticamente y luego llama al oyente. Una estrategia sencilla es activar los nuevos valores en el oyente. Sin embargo, como se mencionó para fetchAndActivate() , se debe evitar la activación inmediata para interfaces de usuario sensibles.

Estrategia 2: activar detrás de la pantalla de carga

Como solución al posible problema de la interfaz de usuario encontrado en la estrategia 1, puede confiar en una pantalla de carga. En lugar de iniciar su aplicación de inmediato, muestre una pantalla de carga y llame a fetchAndActivate en su controlador de finalización. Luego, inmediatamente después de eso, nuevamente usando una devolución de llamada o una notificación, cierre la pantalla de carga y permita que el usuario comience a interactuar con su aplicación.

Si utiliza esta estrategia, se recomienda agregar un tiempo de espera a la pantalla de carga. El tiempo de espera de un minuto de Remote Config puede ser demasiado largo para que los usuarios tengan una experiencia de inicio de aplicaciones de calidad.

Escuchar actualizaciones de Remote Config en tiempo real llamando addOnConfigUpdateListener funciona bien con esta estrategia. Agregue el oyente cuando se muestre la pantalla de carga, luego use activate() en uno o más puntos de su aplicación donde los valores de Remote Config no causarán cambios visuales dramáticos.

Estrategia 3: cargar nuevos valores para el próximo inicio

Una estrategia eficaz es cargar nuevos valores de configuración para activarlos en el próximo inicio de su aplicación. En esta estrategia, su aplicación activa los valores obtenidos al inicio antes de intentar obtener otros nuevos, partiendo del supuesto de que es posible que ya haya obtenido (pero aún no haya activado) nuevos valores de configuración. El orden de operaciones para esta estrategia es:

  1. Al iniciar, active inmediatamente los valores obtenidos anteriormente. Esto aplica cualquier valor que haya descargado del servidor en una sesión anterior y es casi instantáneo.
  2. Mientras el usuario interactúa con su aplicación, inicie una llamada asincrónica para obtener nuevos valores de acuerdo con el intervalo de recuperación mínimo predeterminado y agregue un detector de actualizaciones de configuración en tiempo real. El oyente en tiempo real recuperará automáticamente cualquier valor que se publique en el servidor mientras se ejecuta su aplicación. Las actualizaciones en tiempo real omiten la configuración del intervalo de recuperación mínimo.
  3. En el controlador de finalización o devolución de llamada para la llamada de recuperación, no haga nada. Su aplicación mantendrá los valores descargados hasta que los active la próxima vez que se inicie.

Con esta estrategia, el tiempo de espera de los usuarios se minimiza enormemente. La combinación de las estrategias de recuperación y escucha en tiempo real con llamadas activate() según sea necesario en el ciclo de vida de la aplicación garantiza que los usuarios tengan los valores más recientes de Remote Config mientras interactúan con su aplicación.

Cargando antiestrategias

Como habrás comprendido de la discusión anterior sobre los pros y los contras de la carga, hay un par de patrones de uso que se deben evitar.

  • No actualice ni cambie aspectos de la interfaz de usuario mientras el usuario la esté viendo o interactuando con ella, a menos que tenga razones comerciales o de aplicación sólidas para hacerlo, como eliminar opciones relacionadas con una promoción que acaba de finalizar.
  • No envíe cantidades masivas de solicitudes de recuperación simultáneas, lo que podría provocar que el servidor limite su aplicación. Si necesita obtener actualizaciones con frecuencia, utilice Remote Config en tiempo real . Si bien el riesgo de limitación es bajo en la mayoría de los escenarios de producción, puede ser un problema durante el desarrollo activo, y Remote Config en tiempo real está diseñado para este caso de uso. Consulte la guía de aceleración .
  • No confíe en la conectividad de red para obtener valores de Remote Config. Establezca valores de parámetros predeterminados en la aplicación para que su aplicación siempre se comporte como se espera. Puede mantener periódicamente sincronizados los valores predeterminados del backend de la aplicación y de Remote Config utilizando los valores predeterminados de las plantillas descargadas .

Próximos pasos

Estas tres estrategias básicas de ninguna manera comprenden una lista completa de las formas de cargar valores de configuración. Dependiendo de tus necesidades, podrías idear estrategias mucho más sofisticadas.

Consulte la referencia de API de su plataforma para obtener más información sobre las llamadas específicas para recuperar y activar valores de configuración.