Firebase Remote Config para aplicaciones de Android

Firebase Remote Config es un servicio único diseñado para brindarle un control detallado sobre las instancias de sus aplicaciones mientras están instaladas en los dispositivos de los usuarios. Al usarlo, puede modificar de manera confiable el aspecto y el comportamiento de sus aplicaciones en toda su base de usuarios sin publicar actualizaciones en Google Play.

Si piensa que esto podría ser un riesgo de seguridad, permítame asegurarle que Remote Config no le permite inyectar de forma remota un nuevo código en sus aplicaciones. Solo le permite modificar, a través de la consola Firebase, los valores de ciertas variables predeterminadas que ya están presentes en el código. De hecho, puede pensar en las variables como variables del lado del servidor de las que depende su aplicación.

En este tutorial, te mostraré cómo usar algunas de las funciones más potentes de la configuración remota en aplicaciones de Android.

1. ¿Por qué usar la configuración remota??

La API de configuración remota está pensada principalmente para ser utilizada como una alternativa a los valores simples codificados en sus aplicaciones. Ejemplos de tales valores pueden ser colores, dimensiones, retrasos y etiquetas..

Para comprender mejor la importancia de la API, considere el siguiente escenario: cree y publique una aplicación con valores codificados para el tamaño de fuente y el color de todas sus etiquetas. Unos días después, los usuarios le dicen que prefieren un tamaño de fuente más grande y un color de fuente diferente. Debido a que los valores están codificados, para poder cambiarlos, ahora tendrá que modificar su código, volver a crear la aplicación y darle un nuevo número de versión y volver a publicarlo en Google Play. Eso es mucho trabajo para una solución tan menor. Además, si los usuarios cambian de opinión, tendrás que hacerlo todo de nuevo.!

Con Firebase Remote Config, puede hacer que el tamaño de la fuente y el color de la fuente sean variables configurables de forma remota y usar la consola Firebase para cambiar rápidamente sus valores cuando lo desee, tantas veces como lo desee. Este enfoque moderno también garantiza que los cambios se realicen lo antes posible en los dispositivos de todos sus usuarios, sin que tengan que descargar manualmente las actualizaciones..

2. Configuración del proyecto

Con el Asistente Firebase de Android Studio, agregar configuración remota a su proyecto solo requiere unos pocos clics.

Comience por ir a Herramientas> Firebase y eligiendo Configuración remota> Configurar configuración remota de Firebase en el panel que aparece. 

A continuación, presione el Conectarse a Firebase Botón para asociar su proyecto de Android Studio con un proyecto de Firebase. En el cuadro de diálogo que aparece, seleccione la Crear nuevo proyecto Firebase opción y presione el Conectarse a Firebase botón.

Después de una conexión exitosa, puede presionar Agrega configuración remota a tu aplicación Botón para agregar todas las dependencias necesarias a los archivos de Gradle de su proyecto. Cuando se le solicite, presione Aceptar cambios Botón para completar la configuración del proyecto..

3. Definición de parámetros de configuración

Todas las variables que desea cambiar de forma remota deben definirse en su proyecto Firebase como parámetros de configuración remota. Utilice un navegador para iniciar sesión en la consola de Firebase, desplácese hacia abajo Descripción del proyecto sección para encontrar el Configuración remota tarjeta, y pulse la Empezar botón.

En la pantalla de bienvenida del servicio de configuración remota, presione Añade tu primer parámetro botón para comenzar a agregar las variables.

Definamos dos parámetros ahora: tamaño de fuente y color de fuente. El primero será un número y el segundo una cadena. Asegúrese de asignar valores predeterminados razonables a ambos.

Ahora debería poder ver los dos parámetros que creó. Sin embargo, sus valores no estarán disponibles para su aplicación a menos que los publique. Así que presione el Publicar cambios botón.

4. Preparando un diseño

Para poder utilizar los parámetros que creamos, agregue un Vista de texto Widget que muestra un mensaje en el archivo XML de diseño de su actividad. Si ha creado un nuevo proyecto de Android Studio para este tutorial, no dude en utilizar "Hello World" Vista de texto Widget disponible por defecto, pero asegúrate de darle una identificación.

Dentro de onCreate () método de su actividad, ahora puede obtener una referencia al widget utilizando el findViewById () método.

val myMessage = findViewById(R.id.my_message)

5. Inicializando la configuración remota

Nuestra aplicación debe poder funcionar correctamente la primera vez que se abre, incluso si el usuario no está conectado a Internet. Por lo tanto, debe conocer tanto los nombres como los valores predeterminados de nuestros parámetros de configuración remota. Crear un mapa para almacenarlos es una buena idea..

val defaults = mapOf ("font_size" a 18, "font_color" a "# ff0000")

Tenga en cuenta que los nombres y los valores predeterminados deben ser idénticos a sus equivalentes en la consola de Firebase.

Ahora podemos inicializar un cliente para el servicio de configuración remota usando el por defecto mapa. Para hacerlo, primero cree una instancia del cliente llamando al obtener Instancia() método de la FirebaseRemoteConfig clase, y luego pasar el mapa a su Configurar valores predeterminados() método.

val remoteConfig = FirebaseRemoteConfig.getInstance () remoteConfig.setDefaults (valores predeterminados)

En este punto, el cliente de configuración remota está listo y podemos comenzar a utilizar los valores que proporciona.

6. Usando los valores predeterminados

los FirebaseRemoteConfig La instancia ofrece algunos métodos con nombres intuitivos que puede utilizar para obtener los valores de los parámetros de configuración remota. Por ejemplo, puedes llamar al getDouble () Método para recuperar valores que son números. Del mismo modo, puedes llamar al getString () Método para recuperar valores que son cadenas.

El siguiente código le muestra cómo obtener los valores de la tamaño de fuente y color de fuente parámetros.

val fontSize = remoteConfig.getDouble ("font_size") val fontColor = remoteConfig.getString ("font_color")

Una vez que tenga los valores, puede utilizarlos de la manera que desee. Por ahora, vamos a usarlos para cambiar el aspecto de la mi mensaje widget.

myMessage.textSize = fontSize.toFloat () myMessage.setTextColor (Color.parseColor (fontColor))

Si ejecuta la aplicación ahora, podrá ver el Vista de texto Widget usando los valores por defecto de los parámetros de configuración remota..

7. Obteniendo los últimos valores

En este momento, el cliente de configuración remota simplemente está devolviendo los valores del mapa que le pasamos. Para permitirle usar los valores que obtiene de Firebase, debemos llamar a su activeFetched () método.

remoteConfig.activateFetched ()

los activeFetched () El método, sin embargo, en realidad no recupera valores de Firebase. Por lo tanto, debemos llamar al ha podido recuperar() Método siguiente, que se ejecuta de forma asíncrona, para recuperar los valores.

remoteConfig.fetch ()

Si ejecuta la aplicación en este punto, seguirá utilizando los valores predeterminados. Sin embargo, si espera unos segundos, ciérrelo y vuelva a abrirlo, comenzará a usar los valores que ingresó en la consola Firebase..

Por lo general, es una buena idea dejar que los valores modificados surtan efecto solo cuando los usuarios abran la aplicación la próxima vez. Podría adjuntar un oyente a la Tarea objeto devuelto por el ha podido recuperar() Método y actualice su interfaz de usuario dentro del escucha, pero a los usuarios no les gustará el cambio abrupto.

Sin embargo, puede utilizar el escucha para fines de depuración..

remoteConfig.fetch (). addOnSuccessListener Log.i (TAG, "Valores recuperados correctamente")

8. Cambiando los valores

Actualmente, los valores en el mapa coinciden con los valores remotos. Para poder ver el servicio de configuración remota en acción, debemos cambiar los valores que mencionamos en la consola de Firebase. Así que regrese a la consola y haga clic en uno de los parámetros que ve en la sección Configuración remota.

En el cuadro de diálogo que aparece, deja el Tecla de parámetro campo sin cambios, pero cambiar el valor. Del mismo modo, puede cambiar el valor del otro parámetro también.

Finalmente, asegúrate de presionar Publicar cambios Botón para que los valores estén disponibles para el cliente de configuración remota..

Si abre la aplicación ahora, ciérrela y vuelva a abrirla, debería ver que Vista de texto widget se ve diferente.

9. Agregar condiciones a los parámetros

No siempre tiene que desplegar los mismos valores de configuración remota para todos sus usuarios. La consola Firebase le permite agregar condiciones a sus parámetros de manera que devuelvan valores diferentes a diferentes subconjuntos de su base de usuarios. Hay muchas reglas que puede usar para crear tales subconjuntos. Por ejemplo, puede dirigirse a usuarios que pertenecen a un país específico, usuarios con dispositivos que ejecutan una versión específica de Android o incluso usuarios que hablan un idioma específico.

Debido a que Firebase los administra de manera transparente, no tiene que hacer ningún cambio en su código para manejar las condiciones asociadas con sus parámetros.

A modo de ejemplo, ahora agreguemos una condición a la color de fuente parámetro tal que su valor es azul solo para usuarios indios.

Comience haciendo clic en el parámetro en la consola de Firebase. En el formulario que aparece, haga clic en el Añadir valor por condición campo desplegable y seleccione Definir nueva condición.

En el cuadro de diálogo que se abre a continuación, podrá asignar un nombre a su condición y, desde el Se aplica si ...  En la lista desplegable, seleccione una variedad de opciones que le permitirán concentrarse en un grupo específico de usuarios. Para dirigirse a usuarios de un país específico, deberá elegir el País / Región opción. En la lista que aparece a su lado, puede elegir uno o más países. Escoger India aquí.

Una vez que hayas llenado todos los campos, presiona el Crear condición botón para finalizar la condición.

En este punto, su parámetro podrá aceptar dos valores en lugar de uno. Dejar el Valor por defecto campo como está y escriba el código hexadecimal del color azul en el campo de valor condicional.

Si publica los cambios ahora, los usuarios en la India recibirán una actualización adicional, y el texto en el Vista de texto Aparecerá el widget azul para ellos..

Conclusión

Ahora ya sabe cómo modificar una aplicación de forma remota utilizando Firebase Remote Config y la consola Firebase. Con algo de creatividad, hay mucho que puede hacer con el servicio para mejorar la experiencia de usuario de su aplicación. Por ejemplo, la mayoría de los desarrolladores de hoy lo usan para cambiar los temas de sus aplicaciones para marcar los días festivos. Muchos también lo utilizan con Firebase Analytics para ejecutar pruebas A / B en sus bases de usuarios.

Para obtener más información sobre la configuración remota, consulte la documentación oficial.