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.

La biblioteca de Remote Config se usa para almacenar los valores de parámetros predeterminados en la app, recuperar valores de parámetros actualizados del backend de Remote Config y controlar cuándo están disponibles los valores obtenidos para la app. Para obtener más información, consulta las estrategias de carga de Remote Config.

Paso 1: Agrega Firebase a tu app

Sigue estos pasos antes de comenzar a usar Remote Config:

  • Registra tu proyecto de C++ y configúralo para usar Firebase.

    Si tu proyecto de C++ ya usa Firebase, significa que ya está registrado y configurado para esa plataforma.

  • Agrega el SDK de Firebase C++ a tu proyecto de C++.

Ten en cuenta que agregar Firebase a un proyecto de C++ implica realizar tareas en Firebase console y en el proyecto abierto de C++ (por ejemplo, descargar archivos de configuración de Firebase desde la consola y transferirlos al proyecto de C++).

Paso 2: Agrega Remote Config a tu app

Android

Sigue estos pasos después de haber agregado Firebase a tu app:

  1. Crea una app de Firebase y pasa el entorno y la actividad de JNI:

    app = ::firebase::App::Create(::firebase::AppOptions(), jni_env, activity);

  2. Inicializa la biblioteca de Remote Config, como se muestra a continuación:

    ::firebase::remote_config::Initialize(app);

iOS+

Sigue estos pasos después de haber agregado Firebase a tu app:

  1. Crea una app de Firebase:

    app = ::firebase::App::Create(::firebase::AppOptions());

  2. Inicializa la biblioteca de Remote Config, como se muestra a continuación:

    ::firebase::remote_config::Initialize(app);

Paso 3: Configura los valores de parámetros predeterminados en la app

Puedes configurar los valores de parámetros predeterminados del objeto de Remote Config para que la app se comporte según lo previsto antes de que se conecte al backend de Remote Config y para que los valores predeterminados estén disponibles si no hay ninguno configurado en el backend.

  1. Define un conjunto de nombres de parámetros y valores de parámetros predeterminados mediante un objeto std::map<const char*, const char*> o uno std::map<const char*, firebase::Variant>.

    Si ya configuraste los valores de los parámetros de backend de Remote Config, puedes descargar un archivo que contenga estos pares clave-valor y usarlo para construir el objeto map. Si deseas obtener más información, consulta Descarga los ajustes predeterminados de la plantilla de Remote Config.

  2. Agrega estos valores al objeto de Remote Config mediante SetDefaults().

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 de Remote Config, los recuperas y luego los activas, estos valores estarán disponibles para tu app. De lo contrario, obtendrás los valores de 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:

Paso 5: Conecta tu app en Firebase console

En Firebase console, agrega la app al proyecto de Firebase.

Paso 6: Configura los valores de los parámetros

  1. Abre el proyecto en Firebase console.
  2. Selecciona Remote Config desde el menú para ver el panel de Remote Config.
  3. Define parámetros que tengan los mismos nombres que los que definiste en la 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 7: 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 caché en el objeto de Remote Config.
  2. Para que los valores de parámetros recuperados estén disponibles en la app, llama al ActivateFetched().

Paso 8: 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 de forma automática los cambios después de que publicas una nueva versión de Remote Config.

Las actualizaciones en tiempo real son compatibles con la versión 11.0.0 (y versiones posteriores) del SDK de Firebase C++ para plataformas de Apple y Android.

  1. En tu app, llama a AddOnConfigUpdateListener para comenzar a escuchar actualizaciones y recuperar automáticamente los valores de parámetros nuevos o actualizados. En el siguiente ejemplo, se escuchan actualizaciones y, cuando se llama a Activate, se usan los valores recién recuperados para mostrar un mensaje de bienvenida actualizado.
remote_config->AddOnConfigUpdateListener(
    [](firebase::remote_config::ConfigUpdate&& config_update,
       firebase::remote_config::RemoteConfigError remote_config_error) {
      if (remote_config_error != firebase::remote_config::kRemoteConfigErrorNone) {
        printf("Error listening for config updates: %d", remote_config_error);
      }
      // Search the `updated_keys` set for the key "welcome_message."
      // `updated_keys` represents the keys that have changed since the last
      // fetch.
      if (std::find(config_update.updated_keys.begin(),
                    config_update.updated_keys.end(),
                    "welcome_message") != config_update.updated_keys.end()) {
        remote_config->Activate().OnCompletion(
            [&](const firebase::Future& completed_future,
               void* user_data) {
              // The key "welcome_message" was found within `updated_keys` and
              // can be activated.
              if (completed_future.error() == 0) {
                DisplayWelcomeMessage();
              } else {
                printf("Error activating config: %d", completed_future.error());
              }
            },
            nullptr);
      }
    });

La próxima vez que publiques una versión nueva de Remote Config, los dispositivos que ejecuten tu app y escuchen los cambios llamarán al objeto de escucha de actualización de configuración.

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: