Ir a la consola

Descripción general de la API de Firebase Remote Config

Firebase Remote Config tiene API que hacen que sea más fácil cambiar el comportamiento y la apariencia de la app sin necesidad de pedirles a los usuarios que descarguen una actualización. Esta descripción general expone lo siguiente:

  • Funciones clave de las API de Remote Config
  • La biblioteca de Remote Config y la arquitectura de la API

Para obtener más información sobre Remote Config, consulta la introducción a Remote Config.

Funciones clave de las API de Remote Config

Las API de Remote Config implementan las siguientes funciones:

  • La app controla el momento en que se aplican los nuevos valores de los parámetros. Debido a que los cambios en los valores de los parámetros afectan el comportamiento y la apariencia de la app, el diseño de la API implementa un objeto singleton que obtiene valores en segundo plano, los almacena localmente y permite que la app los active en el momento indicado.
  • Valores predeterminados de parámetros en la app. Puedes configurar valores predeterminados en la app para todos los parámetros de Remote Config incluidos en ella. Estos valores estarán disponibles en la app de inmediato, incluso si un dispositivo no tiene conexión. Adquieres los valores obtenidos y activados con los mismos métodos que usas para obtener valores predeterminados en la app.
  • La obtención y la aplicación de valores son eficientes. La obtención y la activación de valores del servicio de Remote Config son eficientes y se pueden realizar de forma segura y repetida, por lo que no hay necesidad de agregar lógica a la app para que esta espere una devolución de llamada o para que determine si es seguro activar los valores obtenidos. De hecho, puedes escribir la app de modo que envíe una solicitud para obtener valores de parámetros y a fin de que active cualquier valor de parámetro obtenido con anterioridad cada vez que un usuario la inicie o incluso con mayor frecuencia. Si no hay valores obtenidos y activados disponibles, la app usará sus valores predeterminados a partir de la solicitud de obtención o de la llamada a activate(), y el impacto en el rendimiento será insignificante.

Biblioteca de Remote Config

El pilar de la arquitectura de la API de Remote Config es la biblioteca de Remote Config. Esta biblioteca implementa una clase singleton, FIRRemoteConfig para iOS y FirebaseRemoteConfig para Android. Usa el objeto de Remote Config para hacer lo siguiente:

  • Configura valores predeterminados. No necesitas administrar (ni crear) parámetros en el servicio de Remote Config para que la app funcione correctamente. Puedes instrumentarla con tantos parámetros de Remote Config como necesites y crear valores predeterminados en ella. Luego, puedes anular un subconjunto de parámetros de la app mediante la creación de parámetros en el servicio de Remote Config.
  • Obtén, almacena y administra valores de parámetro. El objeto de Remote Config contiene tres almacenamientos de valores de parámetros: Default Config, que almacena valores predeterminados de la app; Active Config, que almacena valores disponibles en la app con métodos get; y Fetched Config, que almacena los valores obtenidos más recientemente desde el servidor de Remote Config.
  • Activa Fetched Config, que actualiza Active Config. Cuando se activa Fetched Config, los valores de sus parámetros se copian a Active Config. De esta manera, los valores obtenidos recientemente quedan disponibles para la app.

Arquitectura de la API

El siguiente diagrama muestra cómo interactúa la app con Remote Config.

La siguiente tabla ofrece detalles adicionales sobre las interacciones entre la app y la biblioteca de Remote Config.

Métodos y propiedades Notas
Métodos de objeto Get Remote Config:

   iOS: remoteConfig
   Android: getInstance()

Paso 1: La app llama a estos métodos para crear el objeto de Remote Config (o los recupera del almacenamiento persistente). Si el objeto se creó hace poco tiempo, Fetched Config, Active Config y Default Config están inicialmente "vacíos", sin valores de parámetros.

Nota: Si pruebas la app para Android con StrictMode, ten en cuenta que la llamada inicial a getInstance() en el momento de la creación de la app ejecuta la operación de lectura desde un archivo local. Para evitar errores en la lectura de disco con StrictMode, esta llamada inicial no debe hacerse en el procesamiento de la IU. Ninguna de las llamadas getInstance() subsiguientes presentan problemas dentro del procesamiento de la IU porque solo realizan la lectura desde la memoria. Nunca debes dejar StrictMode habilitado en las aplicaciones distribuidas en Google Play.

Métodos “Set Default Config”:

   iOS: setDefaults():
   Android: setDefaultsAsync()
Paso 2: La app llama a estos métodos para configurar los valores en Default Config. Si la app intenta obtener un valor desde un nuevo objeto de Remote Config antes de que el valor exista en Active Config, en su lugar se proporciona el valor de Default Config.
Métodos Fetch:

   iOS:
   fetchWithCompletionHandler:,
   fetchWithExpirationDuration:completionHandler:
   Android: fetch()
La app usa estos métodos para iniciar una llamada al servidor de Remote Config y obtener valores de parámetros actualizados, que se almacenan en Fetched Config.

Nota: Los métodos Fetch no tienen un efecto inmediato en el comportamiento ni la apariencia de la app.
Métodos “Activate”:

   iOS: activateFetched()
   Android: activate()
La app activa Fetched Config, que copia los valores almacenados allí a Active Config.
Métodos Get<tipo>:

   iOS: configValueForKey:
   Android: getLong(), getString(), etcétera
La app llama a estos métodos para obtener valores de parámetros desde Active Config.
Métodos de configuración de Config:

   iOS: initWithDeveloperModeEnabled:
   Android: setConfigSettingsAsync()
Se usa para la configuración personalizada. Actualmente, se usa para la configuración que permite a los desarrolladores de apps actualizar los datos de las apps más rápido de lo permitido en las apps de producción y a fin de configurar un tiempo de espera para la recuperación (es decir, cuánto tiempo espera el SDK por la respuesta del servidor antes de detenerse). Para obtener más información, consulta almacenamiento en caché en iOS y regulación en Android.
Métodos y propiedades de Info:

   iOS: lastFetchStatus y allKeysWithPrefix:
   Android: getConfigSettings(), getLastFetchStatus() y getKeysByPrefix()
La app usa estos métodos para obtener información sobre el objeto de Remote Config. Puedes usar estos métodos para la depuración durante el desarrollo de apps.

Para obtener más información sobre las API de Remote Config, consulta estos recursos:

Si quieres comenzar a integrar Remote Config en tu app, consulta Usa Remote Config en iOS y Usa Remote Config en Android.