Comienza a usar Firebase Remote Config


Puedes usar Firebase Remote Config para definir los parámetros en tu app y actualizar sus valores en la nube, lo que te permite modificar el aspecto y el comportamiento de la app sin distribuir una actualización de esta. En esta guía, se explican los pasos que debes seguir para comenzar y se proporciona código de muestra.

Paso 1: Agrega Firebase y el SDK de Remote Config a tu app

  1. Instala e inicializa los SDK de Firebase para Flutter si aún no lo has hecho.

  2. 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.

  3. Desde el directorio raíz de tu proyecto de Flutter, ejecuta el siguiente comando para instalar el complemento de Remote Config:

    flutter pub add firebase_remote_config
    

    Además, como parte de la configuración de Remote Config, debes agregar el SDK de Firebase para Google Analytics a tu app.

    flutter pub add firebase_analytics
    
  4. Vuelve a compilar tu proyecto:

    flutter run
    
  5. Si usas Remote Config en macOS, habilita la función de uso compartido de Keychain en Xcode.

Paso 2: 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:

final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
    fetchTimeout: const Duration(minutes: 1),
    minimumFetchInterval: const Duration(hours: 1),
));

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 la sección Regulación para obtener más detalles.

Paso 3: 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.

await remoteConfig.setDefaults(const {
    "example_param_1": 42,
    "example_param_2": 3.14159,
    "example_param_3": true,
    "example_param_4": "Hello, world!",
});

Paso 4: Obtén los valores de los 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, estos valores estarán disponibles para la app. De lo contrario, obtendrás los valores de los parámetros configurados en la app con setDefaults().

Para obtener estos valores, llama al método siguiente, que aplica asignaciones al tipo de datos que espera la app y proporciona la clave de parámetro como un argumento:

  • getBool()
  • getDouble()
  • getInt()
  • getString()

Paso 5: Configura valores de parámetros en el backend 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.

  1. Abre el proyecto en Firebase console.
  2. Selecciona Remote Config desde el menú para ver el panel de la función.
  3. Define parámetros que tengan los mismos nombres que los que definiste en tu app. Para cada parámetro, puedes definir un valor predeterminado (que, en última instancia, anulará el valor predeterminado de la app) y valores condicionales. Para obtener más información, consulta Parámetros y condiciones de Remote Config.

Paso 6: Recupera y activa valores

  1. 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.

  2. Para que los valores de parámetros recuperados estén disponibles en la app, llama al método activate().

    En los casos en los que desees recuperar y activar valores en una sola llamada, puedes usar una solicitud fetchAndActivate() y recuperar valores desde el backend de Remote Config y hacer que estén disponibles para la app, de la siguiente manera:

    await remoteConfig.fetchAndActivate();
    

Dado que estos valores de parámetros actualizados influyen en 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 abra la app. Consulta las estrategias de carga de Remote Config para obtener más información y ejemplos.

Paso 7: Escucha actualizaciones en tiempo real

Después de recuperar los valores de los parámetros, puedes usar Remote Config en tiempo real para escuchar actualizaciones del backend de Remote Config. Remote Config en tiempo real envía señales a los dispositivos conectados cuando hay actualizaciones disponibles y recupera automáticamente los cambios después de que publicas una nueva versión de Remote Config.

Ten en cuenta que Remote Config en tiempo real no está disponible para la Web.

  1. En tu app, usa onConfigUpdated para comenzar a escuchar actualizaciones y recuperar automáticamente los valores de parámetros nuevos.

     remoteConfig.onConfigUpdated.listen((event) async {
       await remoteConfig.activate();
    
       // Use the new config values here.
     });
    
  2. La próxima vez que publiques una versión nueva de Remote Config, los dispositivos que ejecuten tu app y escuchen los cambios activarán la nueva configuración.

Regulación

Si una app realiza operaciones de recuperación demasiadas veces en un corto tiempo, se limitarán las llamadas de recuperación y el valor de la propiedad lastFetchStatus de FirebaseRemoteConfig será RemoteConfigFetchStatus.throttle.

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.

Si no usas Remote Config en tiempo real durante el desarrollo de la app (lo cual recomendamos), te sugerimos recuperar y activar la configuración con bastante 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 un máximo de 10 desarrolladores, puedes establecer de forma temporal un intervalo de recuperación mínimo bajo con setConfigSettings().

final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
    fetchTimeout: const Duration(minutes: 1),
    minimumFetchInterval: const Duration(minutes: 5),
));

Próximos pasos

Si aún no lo has hecho, explora los casos de uso de Remote Config y revisa algunos de los conceptos clave y la documentación de estrategias avanzadas, en las que se incluye lo siguiente: