Remote Config en tiempo real te permite recibir claves y valores de parámetros actualizados apenas se publican en el servidor. Con esto, puedes actualizar rápidamente cualquier tipo de atributo de app controlado mediante un valor de parámetro de Remote Config. Con las actualizaciones de Remote Config en tiempo real, puedes hacer lo siguiente:
- Reducir el riego lanzando funciones de forma incremental para los usuarios segmentados y realizar una reversión de emergencia si es necesario
- Aumentar la participación de los usuarios personalizando rápidamente sus experiencias a medida que usan la app. Por ejemplo, puedes actualizar los banners y ofrecer incentivos a los usuarios que coincidan con propiedades específicas del usuario de Google Analytics o ajustar de forma dinámica la dificultad del juego para cohortes de jugadores
- Reducir las dependencias de compilación y aumentar la productividad de los desarrolladores: Usa los parámetros de Remote Config como marcas de función para exponer la funcionalidad para tus equipos de prueba y desarrollo, y mantenla oculta para los usuarios en producción
Para obtener más información sobre cómo usar Remote Config, consulta ¿Qué puedes hacer con Remote Config?
En esta guía, harás lo siguiente:
- Obtendrás más información sobre la relación cliente-servidor que admite actualizaciones en tiempo real.
- Comprenderás cómo actúa la funcionalidad en tiempo real del SDK.
- Aprenderás a usar actualizaciones en tiempo real para mantener actualizada la configuración de tu app.
La conexión cliente-servidor en tiempo real
Cuando implementas Remote Config en tiempo real en tu app, creas un objeto de escucha en tiempo real que abre una conexión HTTP al backend de Remote Config. La solicitud incluye la versión de configuración que está almacenada en la caché del dispositivo. El servidor de Remote Config en tiempo real usa un mensaje de invalidación para indicarle a la app cuándo se debe recuperar una versión más reciente de una configuración del servidor.
Si el servidor tiene una versión más reciente, envía la señal de invalidación de inmediato.
Si no la tiene, mantiene la conexión abierta y espera hasta
que se publique una en el servidor. Cuando el SDK cliente recibe una señal de invalidación,
la recupera de forma automática y, luego, llama a la devolución de llamada del objeto de escucha que se registró
cuando abriste la conexión del objeto de escucha. Esta recuperación es similar a la
llamada de recuperación que puedes realizar con el SDK, pero evita cualquier parámetro de configuración de almacenamiento en caché o
minimumFetchInterval
. La conexión cliente-servidor se mantiene mientras
la app se ejecuta en primer plano.
Dado que la conexión cliente-servidor se realiza a través de HTTP, no se requiere ninguna dependencia de otras bibliotecas.
Escucha actualizaciones
Las actualizaciones en tiempo real complementan las llamadas fetch
de Remote Config. Te recomendamos que
llames a la recuperación cuando se inicie la app (o en algún momento durante su ciclo de vida)
y que escuches actualizaciones de Remote Config en tiempo real durante la sesión del usuario para
asegurarte de que tengas los valores más recientes en cuanto se publiquen en el
servidor.
Para escuchar actualizaciones, llama a
addOnConfigUpdateListener
,
implementando una devolución de llamada que se invoque cuando haya
una actualización de Remote Config disponible en la app. En segundo plano, esta llamada comienza a escuchar actualizaciones
del servidor de Remote Config. Para obtener más información sobre la relación
cliente-servidor, consulta
la sección anterior.
A menudo, la devolución de llamada es una buena oportunidad para usar activate
para hacer que los
parámetros de configuración actualizados estén disponibles para la app. Consulta
Estrategias de carga de Firebase Remote Config
y descubre estrategias adicionales para activar valores de parámetros cuando uses
Remote Config en tiempo real.
Activa los valores de los parámetros de manera selectiva
Cuando llamas a
addOnConfigUpdateListener
,
puedes esperar por el cambio y hacer la activación.
onUpdate
cuando se recupera automáticamente una versión nueva de la plantilla
y cuando esa versión nueva tiene cambios para los
valores de parámetros activados en la app.
Estas devoluciones de llamada se invocan con un parámetro configUpdate
. configUpdate
contiene
updatedKeys
,
que es el conjunto de claves de parámetros modificados que iniciaron la actualización en tiempo real
y que incluye lo siguiente:
- Claves de parámetros agregadas o quitadas
- Claves de parámetros cuyos valores cambiaron
- Claves de parámetros cuyos metadatos cambiaron (por ejemplo, información de personalización de Remote Config)
- Claves de parámetros cuyas fuentes de valor hayan cambiado (por ejemplo, un valor predeterminado de la app que se actualiza a un valor del servidor)
Si usas un objeto de escucha en tiempo real en una vista en particular de tu app, puedes verificar si los parámetros relevantes para esa vista cambiaron antes de activarlos.
En ocasiones, una recuperación (que se inicia cuando llamas al método fetch
o a través
de Remote Config en tiempo real) no genera una actualización para el cliente. En
estos casos, no se llamará al método ni a la finalización
onUpdate
.
Agrega y quita objetos de escucha
addOnConfigUpdateListener
es el punto de entrada principal de Remote Config en tiempo real. Si llamas a este objeto de escucha por
primera vez en el ciclo de vida de tu app, se abrirá la conexión con el backend.
Las llamadas posteriores reutilizan la misma conexión y multiplexan el mensaje
de invalidación descrito en
la conexión cliente-servidor en tiempo real.
La llamada muestra un “registro de objeto de escucha”, que tiene un método llamado
remove
.
Para dejar de escuchar, almacena la referencia al registro del objeto de escucha. Llama a
remove
para dejar de escuchar en este registro. Si es el único objeto de escucha registrado,
la llamada a remove
cierra la conexión en tiempo real con el servidor.
Próximos pasos
Consulta Comienza a usar Firebase Remote Config para configurar Remote Config y empezar a escuchar actualizaciones en tiempo real.