Parámetros y condiciones de configuración remota

Cuando usas Firebase console o las API backend de Remote Config , defines uno o más parámetros (pares clave-valor) y proporcionas valores predeterminados en la aplicación para esos parámetros. Puede anular los valores predeterminados en la aplicación definiendo valores de parámetros del lado del servidor. Las claves y los valores de los parámetros son cadenas, pero los valores de los parámetros se pueden convertir como otros tipos de datos cuando usa estos valores en su aplicación.

Con Firebase console, Admin SDK o la API REST de Remote Config , puedes crear nuevos valores predeterminados para tus parámetros, así como valores condicionales que se usan para apuntar a grupos de instancias de aplicaciones. Cada vez que actualizas tu configuración en Firebase console, Firebase crea y publica una nueva versión de tu plantilla de Remote Config. La versión anterior se almacena, lo que le permite recuperarla o revertirla según sea necesario. Estas operaciones están disponibles a través de Firebase console, Firebase Admin SDK y REST API y se describen con más detalle en Administrar versiones de plantillas de Remote Config .

Esta guía explica los parámetros, las condiciones, las reglas, los valores condicionales y cómo se priorizan varios valores de parámetros en el servidor Remote Config y en su aplicación. También proporciona detalles sobre los tipos de reglas utilizadas para crear condiciones.

Condiciones, reglas y valores condicionales.

Se utiliza una condición para apuntar a un grupo de instancias de aplicaciones. Las condiciones se componen de una o más reglas que deben evaluarse como true para que la condición se evalúe como true para una instancia de aplicación determinada. Si el valor de una regla no está definido (por ejemplo, cuando no hay ningún valor disponible), esa regla se evaluará como false .

Por ejemplo, un parámetro que define la página de presentación de una aplicación podría mostrar diferentes imágenes según el tipo de sistema operativo usando la regla simple if device_os = Android :

Captura de pantalla del parámetro 'splash_page' en Firebase console que muestra su valor predeterminado para iOS y su valor condicional para Android

O bien, se podría utilizar una condición de tiempo para controlar cuándo su aplicación muestra artículos promocionales especiales.

Un parámetro puede tener varios valores condicionales que utilizan diferentes condiciones y los parámetros pueden compartir condiciones dentro de un proyecto. En la pestaña Parámetros de Firebase console, puedes ver el porcentaje de recuperación de los valores condicionales de cada parámetro. Esta métrica indica el porcentaje de solicitudes en las últimas 24 horas que recibieron cada valor.

Prioridad del valor del parámetro

Un parámetro puede tener varios valores condicionales asociados. Las siguientes reglas determinan qué valor se obtiene del servidor de Remote Config y qué valor se utiliza en una instancia de aplicación determinada en un momento determinado:

Los valores de los parámetros del lado del servidor se obtienen de acuerdo con la siguiente lista de prioridades

  1. En primer lugar, se aplican valores condicionales, si alguno tiene condiciones que se evalúen como true para una instancia de aplicación determinada. Si varias condiciones se evalúan como true , la primera (la superior) que se muestra en la interfaz de usuario de Firebase console tiene prioridad y los valores condicionales asociados con esa condición se proporcionan cuando una aplicación recupera valores del backend. Puede cambiar la prioridad de las condiciones arrastrando y soltando condiciones en la pestaña Condiciones .

  2. Si no hay valores condicionales con condiciones que se evalúen como true , el valor predeterminado del lado del servidor se proporciona cuando una aplicación recupera valores del backend. Si un parámetro no existe en el backend, o si el valor predeterminado está establecido en Usar valor predeterminado en la aplicación , entonces no se proporciona ningún valor para ese parámetro cuando una aplicación recupera valores.

En su aplicación, los valores de los parámetros se devuelven mediante métodos get de acuerdo con la siguiente lista de prioridades

  1. Si se obtuvo un valor del backend y luego se activó, la aplicación usa el valor obtenido. Los valores de los parámetros activados son persistentes.
  2. Si no se obtuvo ningún valor del backend, o si los valores obtenidos del backend de Remote Config no se activaron, la aplicación usa el valor predeterminado en la aplicación.

    Para obtener más información sobre cómo obtener y configurar valores predeterminados, consulte Descargar los valores predeterminados de la plantilla de Remote Config .

  3. Si no se ha establecido ningún valor predeterminado en la aplicación, la aplicación utiliza un valor de tipo estático (como 0 para int y false para boolean ).

Este gráfico resume cómo se priorizan los valores de los parámetros en el backend de Remote Config y en su aplicación:

Diagrama que muestra el flujo descrito por las listas ordenadas arriba

Tipos de datos de valores de parámetros

Remote Config le permite seleccionar un tipo de datos para cada parámetro y valida todos los valores del lado del servidor con ese tipo antes de actualizar la plantilla. El tipo de datos se almacena y se devuelve en una solicitud getRemoteConfig .

Los tipos admitidos actualmente son:

  • String
  • Boolean
  • Number
  • JSON

En la interfaz de usuario de la consola de Firebase, el tipo de datos se puede seleccionar en un menú desplegable junto a la clave del parámetro. En la API REST, los tipos se pueden configurar utilizando el campo value_type dentro del objeto de parámetro.

Grupos de parámetros

Remote Config le permite agrupar parámetros para obtener una interfaz de usuario y un modelo mental más organizados.

Por ejemplo, digamos que necesita habilitar o deshabilitar tres tipos de autenticación diferentes mientras implementa una nueva función de inicio de sesión. Con Remote Config, puede crear los tres parámetros para habilitar los tipos que desee y luego organizarlos en un grupo llamado "Nuevo inicio de sesión", sin necesidad de agregar prefijos ni una clasificación especial.

Puedes crear grupos de parámetros usando Firebase console o la API REST de Remote Config. Cada grupo de parámetros que crea tiene un nombre único en su plantilla de Remote Config. Al crear grupos de parámetros, tenga en cuenta:

  • Los parámetros se pueden incluir en un solo grupo a la vez y una clave de parámetro debe ser única en todos los parámetros.
  • Los nombres de los grupos de parámetros están limitados a 256 caracteres.
  • Si usa tanto la API REST como Firebase console, asegúrese de que cualquier lógica de la API REST esté actualizada para manejar grupos de parámetros en la publicación.

Crear o modificar grupos de parámetros usando Firebase console

Puede agrupar parámetros en la pestaña Parámetros de Firebase console. Para crear o modificar un grupo:

  1. Seleccione Administrar grupos .
  2. Seleccione las casillas de verificación de los parámetros que desea agregar y seleccione Mover al grupo .
  3. Seleccione un grupo existente o cree un grupo nuevo ingresando un nombre y una descripción, y seleccionando Crear nuevo grupo . Después de guardar un grupo, estará disponible para publicarlo mediante el botón Publicar cambios .

Crear grupos programáticamente

La API REST de Remote Config proporciona una forma automatizada de crear y publicar grupos de parámetros. Suponiendo que esté familiarizado con REST y esté configurado para autorizar solicitudes a la API, puede realizar estos pasos para administrar grupos mediante programación:

  1. Recuperar la plantilla actual
  2. Agregue objetos JSON para representar sus grupos de parámetros
  3. Publique los grupos de parámetros mediante una solicitud HTTP PUT.

El objeto parameterGroups contiene claves de grupo, con una descripción anidada y una lista de parámetros agrupados. Tenga en cuenta que cada clave de grupo debe ser globalmente única.

Por ejemplo, aquí hay un extracto de una revisión de plantilla que agrega el grupo de parámetros "nuevo menú" con un parámetro, pumpkin_spice_season :

{
  "parameters": {},
  "version": {
    "versionNumber": "1",

    …


  },
  "parameterGroups": {
    "new menu": {
      "description": "New Menu",
      "parameters": {
        "pumpkin_spice_season": {
          "defaultValue": {
            "value": "true"
          },
          "description": "Whether it's currently pumpkin spice season."
        }
      }
    }
  }
}

Tipos de reglas de condición

Los siguientes tipos de reglas se admiten en Firebase console. La funcionalidad equivalente está disponible en la API REST de Remote Config, como se detalla en la referencia de expresiones condicionales .

Tipo de regla Operador(es) Valores) Nota
Aplicación == Seleccione de una lista de ID de aplicación para aplicaciones asociadas con su proyecto de Firebase. Cuando agregas una aplicación a Firebase, ingresas un ID de paquete o un nombre de paquete de Android que define un atributo que se expone como ID de aplicación en las reglas de Remote Config.

Utilice este atributo de la siguiente manera:
  • Para plataformas Apple: utilice el CFBundleIdentifier de la aplicación. Puede encontrar el Identificador de paquete en la pestaña General para el objetivo principal de su aplicación en Xcode.
  • Para Android: utilice el ID de aplicación de la aplicación. Puede encontrar el applicationId en su archivo build.gradle a nivel de aplicación.
Version de aplicacion Para valores de cadena:
coincide exactamente,
contiene,
no contiene,
expresión regular

Para valores numéricos:
=, ≠, >, ≥, <, ≤

Especifique las versiones de su aplicación a las que apuntar.

Antes de usar esta regla, debes usar una regla de ID de aplicación para seleccionar una aplicación de Android/Apple asociada con tu proyecto de Firebase.

Para plataformas Apple: utilice CFBundleShortVersionString de la aplicación.

Nota: Asegúrese de que su aplicación de Apple utilice la versión 6.24.0 o superior del SDK de las plataformas Firebase Apple, ya que CFBundleShortVersionString no se envía en versiones anteriores (consulte las notas de la versión ).

Para Android: use el nombre de versión de la aplicación.

Las comparaciones de cadenas para esta regla distinguen entre mayúsculas y minúsculas. Cuando se utilizan coincidencias exactas , contiene , no contiene o el operador de expresión regular , puede seleccionar varios valores.

Al utilizar el operador de expresión regular , puede crear expresiones regulares en formato RE2 . Su expresión regular puede coincidir total o parcialmente con la cadena de la versión de destino. También puede utilizar los anclajes ^ y $ para hacer coincidir el principio, el final o la totalidad de una cadena de destino.

Número de compilación Para valores de cadena:
coincide exactamente,
contiene,
no contiene,
expresión regular

Para valores numéricos:
=, ≠, >, ≥, <, ≤

Especifique las compilaciones de su aplicación a las que apuntar.

Antes de usar esta regla, debes usar una regla de ID de aplicación para seleccionar una aplicación de Apple o Android asociada con tu proyecto de Firebase.

Este operador está disponible únicamente para aplicaciones de Apple y Android. Corresponde a CFBundleVersion de la aplicación para Apple y versionCode para Android. Las comparaciones de cadenas para esta regla distinguen entre mayúsculas y minúsculas.

Cuando se utilizan coincidencias exactas , contiene , no contiene o el operador de expresión regular , puede seleccionar varios valores.

Al utilizar el operador de expresión regular , puede crear expresiones regulares en formato RE2 . Su expresión regular puede coincidir total o parcialmente con la cadena de la versión de destino. También puede utilizar los anclajes ^ y $ para hacer coincidir el principio, el final o la totalidad de una cadena de destino.

Plataforma == iOS
Androide
Web
Sistema operativo ==

Especifique los sistemas operativos a los que se dirigirá.

Antes de usar esta regla, debes usar una regla de ID de aplicación para seleccionar una aplicación web asociada con tu proyecto de Firebase.

Esta regla se evalúa como true para una instancia de aplicación web determinada si el sistema operativo y su versión coinciden con un valor de destino en la lista especificada.
Navegador ==

Especifique los navegadores a los que apuntar.

Antes de usar esta regla, debes usar una regla de ID de aplicación para seleccionar una aplicación web asociada con tu proyecto de Firebase.

Esta regla se evalúa como true para una instancia de aplicación web determinada si el navegador y su versión coinciden con un valor de destino en la lista especificada.
Categoría de dispositivo no lo es móvil Esta regla evalúa si el dispositivo que accede a su aplicación web es móvil o no móvil (escritorio o consola). Este tipo de regla solo está disponible para aplicaciones web.
Idiomas es en Seleccione uno o más idiomas. Esta regla se evalúa como true para una instancia de aplicación determinada si esa instancia de aplicación está instalada en un dispositivo que usa uno de los idiomas enumerados.
País/Región es en Seleccione una o más regiones o países. Esta regla se evalúa como true para una instancia de aplicación determinada si la instancia se encuentra en cualquiera de las regiones o países enumerados. El código de país del dispositivo se determina utilizando la dirección IP del dispositivo en la solicitud o el código de país determinado por Firebase Analytics (si los datos de Analytics se comparten con Firebase).
Audiencias de usuarios Incluye al menos uno Seleccione una o más de una lista de audiencias de Google Analytics que haya configurado para su proyecto.

Esta regla requiere una regla de ID de aplicación para seleccionar una aplicación asociada con su proyecto de Firebase.

Nota: Debido a que muchas audiencias de Analytics están definidas por eventos o propiedades de usuario, que pueden basarse en las acciones de los usuarios de la aplicación, es posible que una regla de Usuario en audiencia tarde algún tiempo en surtir efecto para una instancia de aplicación determinada.

Propiedad del usuario Para valores de cadena:
contiene,
no contiene,
coincide exactamente,
expresión regular

Para valores numéricos:
=, ≠, >, ≥, <, ≤

Nota: En el cliente, solo puede establecer valores de cadena para las propiedades del usuario. Para condiciones que utilizan operadores numéricos, Remote Config convierte el valor de la propiedad de usuario correspondiente en un número entero/flotante.
Seleccione de una lista de propiedades de usuario de Google Analytics disponibles. Para saber cómo puede utilizar las propiedades de usuario para personalizar su aplicación para segmentos muy específicos de su base de usuarios, consulte Configuración remota y propiedades de usuario .

Para obtener más información sobre las propiedades de usuario, consulte las siguientes guías:

Cuando se utilizan coincidencias exactas , contiene , no contiene o el operador de expresión regular , puede seleccionar varios valores.

Al utilizar el operador de expresión regular , puede crear expresiones regulares en formato RE2 . Su expresión regular puede coincidir total o parcialmente con la cadena de la versión de destino. También puede utilizar los anclajes ^ y $ para hacer coincidir el principio, el final o la totalidad de una cadena de destino.

Nota: Las propiedades de usuario recopiladas automáticamente no están disponibles actualmente al crear condiciones de Remote Config.
Usuario en porcentaje aleatorio Control deslizante (en la consola de Firebase. La API REST utiliza <= , > y between operadores). 0-100

Utilice este campo para aplicar un cambio a una muestra aleatoria de instancias de aplicaciones (con tamaños de muestra tan pequeños como 0,0001%), utilizando el widget deslizante para segmentar usuarios aleatorios (instancias de aplicaciones) en grupos.

Cada instancia de aplicación se asigna persistentemente a un número entero o fraccionario aleatorio, según una semilla definida en ese proyecto.

Una regla usará la clave predeterminada (que se muestra como Editar semilla en Firebase console) a menos que modifiques el valor de semilla. Puede hacer que una regla vuelva a utilizar la clave predeterminada borrando el campo Semilla .

Para abordar de manera consistente las mismas instancias de aplicaciones dentro de rangos de porcentaje determinados, use el mismo valor inicial en todas las condiciones. O seleccione un nuevo grupo de instancias de aplicación asignado aleatoriamente para un rango de porcentaje determinado especificando una nueva semilla.

Por ejemplo, para crear dos condiciones relacionadas que se apliquen cada una a un 5 % no superpuesto de los usuarios de una aplicación, puede configurar una condición para que coincida con un porcentaje entre 0 % y 5 % y configurar otra condición para que coincida con un rango entre 5 % y 10%. Para permitir que algunos usuarios aparezcan aleatoriamente en ambos grupos, utilice diferentes valores iniciales para las reglas dentro de cada condición.

Segmento importado es en Seleccione uno o más segmentos importados. Esta regla requiere configurar segmentos importados personalizados.
Fecha y hora Antes después Una fecha y hora especificadas, ya sea en la zona horaria del dispositivo o en una zona horaria específica, como "(GMT+11) hora de Sydney". Compara la hora actual con la hora de recuperación del dispositivo.
Primero abierto Antes después Una fecha y hora especificadas, en la zona horaria especificada.

Coincide con los usuarios que abren por primera vez la aplicación de destino dentro del rango de tiempo especificado.

Requiere los siguientes SDK:

  • SDK de Firebase para Google Analytics
  • Plataformas Apple SDK v9.0.0+ o Android SDK v21.1.1+ (Firebase BoM v30.3.0+)

ID de instalación es en Especifique uno o más ID de instalación (hasta 50) como destino. Esta regla se evalúa como true para una instalación determinada si el ID de esa instalación está en la lista de valores separados por comas.

Para saber cómo obtener ID de instalación, consulte Recuperar identificadores de cliente .
El usuario existe (sin operador) Se dirige a todos los usuarios de todas las aplicaciones dentro del proyecto actual.

Utilice esta regla de condición para hacer coincidir todos los usuarios dentro del proyecto, independientemente de la aplicación o plataforma.

Búsqueda de parámetros y condiciones

Puedes buscar las claves de parámetros, los valores de los parámetros y las condiciones de tu proyecto desde Firebase console usando el cuadro de búsqueda en la parte superior de la pestaña Parámetros de Remote Config.

Límites de parámetros y condiciones.

Dentro de un proyecto de Firebase, puedes tener hasta 2000 parámetros y hasta 500 condiciones. Las claves de parámetros pueden tener hasta 256 caracteres, deben comenzar con un guión bajo o una letra inglesa (AZ, az) y también pueden incluir números. La longitud total de las cadenas de valores de parámetros dentro de un proyecto no puede exceder 1.000.000 de caracteres.

Visualización de cambios en parámetros y condiciones

Puedes ver los últimos cambios en tus plantillas de Remote Config desde Firebase console . Para cada parámetro y condición individual, puede:

  • Vea el nombre del usuario que modificó por última vez el parámetro o condición.

  • Si el cambio se produjo dentro del mismo día, vea la cantidad de minutos u horas que han transcurrido desde que se publicó el cambio en la plantilla de Remote Config activa.

  • Si el cambio se produjo hace uno o más días, vea la fecha en que se publicó el cambio en la plantilla activa de Remote Config.

Actualizaciones de parámetros

En la página Parámetros de Remote Config, la columna Última publicación muestra el último usuario que modificó cada parámetro y la última fecha de publicación del cambio:

  • Para ver los metadatos de cambio de parámetros agrupados, expanda el grupo de parámetros.

  • Para ordenar en orden ascendente o descendente por fecha de publicación, haga clic en la etiqueta de la columna Última publicación .

Actualizaciones de condiciones

En la página Condiciones de Remote Config, puede ver el último usuario que modificó la condición y la fecha en que la modificó junto a Última modificación debajo de cada condición.

Próximos pasos

Para comenzar a configurar su proyecto de Firebase, consulte Configurar un proyecto de Firebase Remote Config .