1. Introducción
Última actualización: 09/03/2021
¿Qué es Firebase Remote Config?
Firebase Remote Config es un servicio en la nube que te permite cambiar el comportamiento y el aspecto de tu app sin que los usuarios deban descargar una actualización de la app sin costo. Cuando usas Remote Config, creas valores predeterminados en la app que controlan el comportamiento y el aspecto de tu app. Luego, puedes usar Firebase console o las APIs de backend de Remote Config para anular los valores predeterminados en la app para todos los usuarios o para segmentos de tu base de usuarios. La app controla cuándo se aplican las actualizaciones y puede verificar con frecuencia si hay actualizaciones y aplicarlas, todo con un impacto insignificante en el rendimiento.
¿Cómo funciona?
Remote Config incluye una biblioteca cliente que maneja tareas importantes como la recuperación de valores de parámetros y su almacenamiento en caché, pero te da control sobre cuándo se activan los nuevos valores para que afecten la experiencia de los usuarios de la app. De esta manera, puedes controlar el momento en el que se implementa un cambio para proteger la experiencia que ofrece la app.
Los métodos get de la biblioteca cliente de Remote Config proporcionan un único punto de acceso para los valores de los parámetros. La app obtiene valores del servidor con la misma lógica que usa para obtener los valores predeterminados internos, de modo que puedes agregar las funciones de Remote Config a la app sin escribir mucho código.
Para anular los valores predeterminados en la app, usas Firebase console o las APIs de backend de Remote Config para crear parámetros con los mismos nombres que los parámetros usados en tu app. Para cada parámetro, puedes establecer un valor predeterminado del servidor para anular el valor predeterminado en la app y también puedes crear valores condicionales para anular el valor predeterminado en la app para las instancias de la app que cumplan con ciertas condiciones. En el siguiente gráfico, se muestra cómo se priorizan los valores de los parámetros en el backend de Remote Config y en tu app:

Qué aprenderás
- Cómo implementar Firebase Remote Config
- Cómo usar Firebase Remote Config para cambiar valores sin actualizar tu app
Requisitos
- La versión más reciente de Android Studio
- Una cuenta de Firebase
- (Recomendado, pero opcional) Un dispositivo Android físico para ejecutar tu app
- Conocimientos básicos de Java o Kotlin
2. Cómo prepararte
(Opcional) Descarga el código de muestra
En este codelab, compilarás tu propia app de prueba, pero, si quieres ver y ejecutar la app de ejemplo existente, puedes descargar el código de muestra de la guía de inicio rápido.
Haz clic en el siguiente botón para descargar todo el código de este codelab:
Descomprime el archivo zip descargado. Esto descomprimirá una carpeta raíz llamada quickstart-android-master.
… o clona el repositorio de GitHub desde la línea de comandos.
$ git clone https://github.com/firebase/quickstart-android.git
El repositorio contiene varias carpetas. Usaremos la carpeta config de
.
(Opcional) Importa el código de muestra
Inicia Android Studio y elige "Import project" en la pantalla de bienvenida. Luego, abre la carpeta descargada y selecciona la carpeta config
. Luego, haz clic en "Abrir".

Crea un proyecto nuevo de Android
- Inicia un proyecto nuevo en Android Studio
- Selecciona Actividad básica
- En la pantalla "Configure Your Project", haz lo siguiente:
- Ponle un nombre al proyecto. El nombre del paquete y la ubicación de guardado se generarán automáticamente.
- Lenguaje: Java
- SDK mínimo 16
3. Agrega Firebase y Firebase Analytics a tu proyecto de Android
Crea un proyecto de Firebase
Antes de poder agregar Firebase a tu app para Android, debes crear un proyecto de Firebase y conectarlo a la app para iOS. Visita Información sobre los proyectos de Firebase para obtener más detalles sobre este tema.
- En Firebase console, haz clic en Agregar proyecto y, luego, selecciona o ingresa un Nombre del proyecto.

Si ya tienes un proyecto de Google Cloud Platform (GCP), puedes seleccionarlo en el menú desplegable para agregarle recursos de Firebase.
- Si vas a crear un proyecto nuevo, puedes editar el ID del proyecto (opcional).
Firebase asignará de manera automática un ID único a tu proyecto de Firebase. Consulta la sección Información sobre los proyectos de Firebase para obtener detalles sobre cómo usa Firebase el ID del proyecto.
- Haz clic en Continuar.
- Configura Google Analytics para tu proyecto, lo que te permitirá tener una experiencia óptima con cualquiera de los siguientes productos de Firebase:
- Firebase Crashlytics
- Firebase Predictions
- Firebase Cloud Messaging
- Firebase In‑App Messaging
- Firebase Remote Config
- Firebase A/B Testing
Cuando se te solicite, selecciona una cuenta de Google Analytics existente o crea una nueva. Si eliges crear una cuenta nueva, selecciona la ubicación de tus informes de Analytics. Luego, acepta la configuración de uso compartido de datos y las condiciones de Google Analytics para tu proyecto.


- Haz clic en Crear proyecto (o Agregar Firebase si usas un proyecto de GCP existente).
Firebase aprovisiona los recursos para tu proyecto de Firebase de forma automática. Cuando finalice el proceso, verás la página de descripción general del proyecto en Firebase console.
Registra tu app con Firebase
Cuando tengas un proyecto de Firebase, podrás agregarle tu app para Android.
Consulta Información sobre los proyectos de Firebase para obtener más información sobre las prácticas recomendadas y las consideraciones para agregar apps a un proyecto de Firebase, incluido cómo manejar diversas variantes de compilación.
- Ve a Firebase console.
- En la parte superior de la página de descripción general del proyecto, haz clic en el ícono de Android para iniciar el flujo de trabajo de configuración. Si ya agregaste una app a tu proyecto de Firebase, haz clic en Agregar app para que se muestren las opciones de plataforma.
- Ingresa el nombre del paquete de tu app en el campo Nombre del paquete de Android.
- (Opcional) Ingresa el sobrenombre de la app.
- Deja el campo SHA-1 en blanco, ya que no se requiere para este proyecto.
- Haz clic en Registrar app.
Agrega el archivo de configuración de Firebase
A continuación, se te pedirá que descargues un archivo de configuración que contiene todos los metadatos necesarios de Firebase para tu app. Haz clic en Descargar google-services.json para obtener el archivo de configuración de Firebase para Android (google-services.json).


Agrega reglas para incluir el complemento de Gradle para Servicios de Google en tu archivo Gradle a nivel del proyecto (build.gradle). Además, revisa que tengas el repositorio Maven de Google.
Archivo build.gradle a nivel de proyecto (<project>/build.gradle):
buildscript {
repositories {
// Check that you have the following line (if not, add it):
google() // Google's Maven repository
}
dependencies {
// ...
// Add the following line:
classpath 'com.google.gms:google-services:4.3.5' // Google Services plugin
}
}
allprojects {
// ...
repositories {
// Check that you have the following line (if not, add it):
google() // Google's Maven repository
// ...
}
}
En el archivo Gradle del módulo (a nivel de la app) (generalmente app/build.gradle), aplica el complemento Gradle de los servicios de Google:
Archivo build.gradle a nivel de la app (<project>/<app-module>/build.gradle):
apply plugin: ‘com.android.application'
// Add the following line:
apply plugin: ‘com.google.gms.google-services' // Complemento de Google Services
android {
// ...
}
Agrega el SDK de Firebase a tu app para Android
En el caso de Remote Config, se requiere Google Analytics para la segmentación condicional de las instancias de apps a las propiedades del usuario y los públicos. Asegúrate de habilitar Google Analytics en tu proyecto.
(Esto ya se hizo en el código de inicio rápido de ejemplo).
Usa la BoM de Firebase para Android a fin de declarar la dependencia de la biblioteca de Android para Remote Config en el archivo Gradle (generalmente app/build.gradle) de tu módulo (nivel de app). Si usas la BoM de Firebase para Android, tu app siempre utilizará versiones compatibles de las bibliotecas de Firebase para Android.
Además, como parte de la configuración de Analytics, debes agregar el SDK de Firebase para Google Analytics a tu app. En las dependencias, agrega el siguiente código:
app/build.gradle
dependencies {
// Import the BoM for the Firebase platform
implementation platform('com.google.firebase:firebase-bom:26.6.0')
// Declare the dependencies for the Remote Config and Analytics libraries
// When using the BoM, you don't specify versions in Firebase library dependencies
implementation 'com.google.firebase:firebase-config'
implementation 'com.google.firebase:firebase-analytics'
}
Sincroniza tu proyecto con archivos de Gradle
Para asegurarte de que todas las dependencias estén disponibles para tu app, selecciona File > Sync Project with Gradle Files para sincronizar tu proyecto con los archivos de Gradle.
4. Revisa los componentes principales de Remote Config
Ahora revisaremos los pasos para usar Remote Config en una app. Estos pasos ya se completaron en el código del codelab de inicio rápido. Usa esta sección mientras revisas el código del codelab de inicio rápido para comprender lo que sucede.
1. Obtén el objeto singleton de Remote Config
Obtén una instancia de objeto de Remote Config y establece el intervalo de recuperación mínimo para permitir actualizaciones frecuentes:
MainActivity.java
mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
.setMinimumFetchIntervalInSeconds(3600)
.build();
mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);
El objeto singleton se usa para almacenar los valores de parámetros predeterminados en la app, recuperar los valores de parámetros actualizados desde el backend y controlar cuándo estos valores estarán disponibles para la app.
Durante el desarrollo, se recomienda establecer un intervalo de recuperación mínimo relativamente bajo. Consulta Regulación para obtener más información.
2. Configura los valores de parámetros predeterminados en la app
Puedes configurar los valores de parámetros predeterminados en la app en el objeto de Remote Config, de modo que la app se comporte según lo previsto antes de conectarse al backend de Remote Config y para que los valores predeterminados estén disponibles si no hay ninguno configurado en el backend.
Puedes definir un conjunto de nombres de parámetros y valores de parámetros predeterminados con un objeto Map o un archivo de recursos XML almacenado en la carpeta res/xml de tu app. La app de ejemplo de la guía de inicio rápido de Remote Config usa un archivo XML para definir los valores y nombres de los parámetros predeterminados. A continuación, se explica cómo crear tu propio archivo XML:
- Crea una carpeta
xmlen la carpetares.

- Haz clic con el botón derecho en la carpeta
xmlque acabas de crear y crea un archivo.

- Establece los valores predeterminados. En la siguiente sección, intentarás cambiar los valores predeterminados en el archivo XML de la guía de inicio rápido de Remote Config.
- Agrega estos valores al objeto de Remote Config con setDefaultsAsync(int), como se muestra a continuación:
MainActivity.java
mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);
3. Obtén valores de parámetros para usarlos en tu app
Ahora puedes obtener valores de parámetros desde el objeto de Remote Config. Si configuras valores en el backend, los recuperas y luego los activas, esos valores estarán disponibles para la app. De lo contrario, obtendrás los valores de los parámetros configurados en la app con setDefaultsAsync(int). Para obtener estos valores, llama al método que se indica a continuación, que aplica asignaciones al tipo de datos que espera la app y proporciona la clave de parámetro como un argumento:
4. Recupera y activa valores
- Para recuperar valores de los parámetros del backend de Remote Config, llama al método fetch(). Todos los valores que estableces en el backend se recuperan y almacenan en el objeto de Remote Config.
- Para que los valores de parámetros recuperados estén disponibles en la app, llama al método activate(). Para los casos en los que desees recuperar y activar valores en una sola llamada, puedes usar una solicitud fetchAndActivate() para recuperar valores del backend de Remote Config y hacer que estén disponibles para la app:
MainActivity.java
mFirebaseRemoteConfig.fetchAndActivate()
.addOnCompleteListener(this, new OnCompleteListener<Boolean>() {
@Override
public void onComplete(@NonNull Task<Boolean> task) {
if (task.isSuccessful()) {
boolean updated = task.getResult();
Log.d(TAG, "Config params updated: " + updated);
Toast.makeText(MainActivity.this, "Fetch and activate succeeded",
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "Fetch failed",
Toast.LENGTH_SHORT).show();
}
displayWelcomeMessage();
}
});
Dado que estos valores de parámetros actualizados afectan el comportamiento y el aspecto de la app, debes activar los valores recuperados en un momento en el que se garantice una experiencia fluida para el usuario, como la próxima vez que la abra. Consulta las estrategias de carga de Remote Config para obtener más información y ejemplos.
Limitación
Si una app realiza recuperaciones muchas veces en poco tiempo, se regulan las llamadas de recuperación y el SDK devuelve el estado FirebaseRemoteConfigFetchThrottledException. Antes de la versión 17.0.0 del SDK, el límite eran 5 solicitudes de recuperación en un período de 60 minutos (las versiones más recientes tienen límites más permisivos).
Durante el desarrollo de la app, te recomendamos recuperar y activar la configuración con mucha frecuencia (varias veces por hora) para que puedas iterar con rapidez mientras desarrollas y pruebas tu app. Para permitir iteraciones rápidas en un proyecto con hasta 10 desarrolladores, puedes establecer de forma temporal un objeto FirebaseRemoteConfigSettings con un intervalo de recuperación mínimo bajo (setMinimumFetchIntervalInSeconds) en tu app.
Según la configuración predeterminada, el intervalo de recuperación mínimo de Remote Config es de 12 horas, lo que significa que las configuraciones se recuperarán desde el backend solo una vez cada 12 horas, sin importar cuántas llamadas se realicen. Específicamente, el intervalo de recuperación mínimo se determina en el siguiente orden:
- El parámetro de
fetch(long) - El parámetro de
FirebaseRemoteConfigSettings.setMinimumFetchIntervalInSeconds(long) - El valor predeterminado de 12 horas
Para establecer un valor personalizado en el intervalo de recuperación mínimo, usa FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long).
5. Cómo cambiar el comportamiento de la app con Remote Config
Cómo cambiar los parámetros predeterminados en la app
Abre res/xml/remote_config_defaults.xml y cambia los valores predeterminados por otros.
res/xml/remote_config_defaults.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- START xml_defaults -->
<defaultsMap>
<entry>
<key>loading_phrase</key>
<value>Fetching config...</value>
</entry>
<entry>
<key>welcome_message_caps</key>
<value>false</value>
</entry>
<entry>
<key>welcome_message</key>
<value>Welcome to my awesome app!</value>
</entry>
</defaultsMap>
<!-- END xml_defaults -->
Verifica el cambio del valor predeterminado en la app
- Ejecuta el proyecto en un emulador o con un dispositivo de prueba para confirmar el comportamiento.
- Haz clic en Open en la versión de Java o Kotlin.

- Revisa el mensaje de bienvenida en la vista principal.

Establece valores de parámetros en el backend de Remote Config
Ahora probemos el envío de valores a través de Remote Config. Con Firebase console o las APIs de backend de Remote Config, puedes crear nuevos valores predeterminados del servidor que anulen los valores de la app según la lógica condicional o la segmentación de usuarios que desees. En esta sección, se describen los pasos que se deben seguir en Firebase console para crear los valores.
- Abre Firebase console y tu proyecto.
- Selecciona Remote Config en el menú del lado izquierdo de la sección Participación para ver el panel de Remote Config.
- En Agregar un parámetro, ingresa
Parameter key.. EnDefault value, agrega el texto que desees. Luego, haz clic en Add Parameter. En este codelab, usaremos las claves de parámetros del archivores/xml/remote_config_defaults.xml. Consulta la siguiente tabla para obtener más detalles:
Clave del parámetro | Valor predeterminado ( | Descripción |
loading_phrase | Recuperando la configuración… | Es una cadena que se muestra cuando se recuperan valores de Remote Config. |
welcome_message_caps | falso | Booleano. Si es verdadero, cambia welcome_message a mayúsculas. |
welcome_message | ¡Te damos la bienvenida a mi increíble app! | Cadena; mensaje de bienvenida |
Ejemplo de captura de pantalla:

- Cuando termines de agregar los parámetros, haz clic en "Publicar cambios".
- Vuelve a ejecutar tu app en un emulador o dispositivo y haz clic en el botón "Fetch Remote Welcome" esta vez.

- El mensaje de bienvenida debe actualizarse según los parámetros y valores de Remote Config.
6. Felicitaciones
Felicitaciones, usaste Remote Config correctamente para cambiar el mensaje de bienvenida. Existen muchas más formas de usar Remote Config para cambiar y personalizar apps. Consulta los siguientes recursos adicionales: