Información de referencia para compilar expresiones condicionales con Remote Config

Esta página contiene información de referencia para compilar expresiones condicionales con las APIs de backend de Remote Config o Firebase console. Para obtener más información acerca de la configuración y el uso de las APIs de backend, consulta Modifica Remote Config de manera programática.

Elementos usados para crear condiciones

La API de REST de Remote Config admite los mismos elementos que puedes usar para crear condiciones cuando configuras Remote Config con Firebase console:

Elemento Descripción
&&

Se usa a fin de crear un “y” lógico de elementos si usas más de un elemento para una condición. Si se utiliza un elemento en la sintaxis de REST sin && , ese elemento se trata como una condición.

Nota: Se debe colocar un espacio antes y después de los signos “&”. Por ejemplo: element1 && element2.

app.build

Se evalúa como TRUE o FALSE según el valor del número de compilación de una app.

Nota: Solo está disponible en dispositivos Apple y Android. En Apple, usa el valor de CFBundleVersion y, en Android, el de versionCode.

app.version

Se evalúa como TRUE o FALSE según el valor del número de versión de una app.

Nota: En dispositivos Android, usa el valor de versionName y, en dispositivos Apple, el de CFBundleShortVersionString.

app.id Elemento basado en el ID de app de Firebase de la app.
app.audiences Elemento que se evalúa como TRUE o FALSE según la presencia o ausencia del usuario en uno o más públicos de Firebase Analytics.
app.firstOpenTimestamp Elemento basado en la primera vez que el usuario accede a una app, obtenida del evento first_open de Google Analytics. Usa la fecha en formato ISO con la opción para especificar una zona horaria fija; por ejemplo, app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles'). Si no se especifica una zona horaria, se utiliza la hora del meridiano de Greenwich (GMT).
app.userProperty Elemento que se evalúa como TRUE o FALSE según el valor numérico o de string de una propiedad del usuario de Firebase Analytics.
app.operatingSystemAndVersion

Elemento basado en el sistema operativo en el que se ejecuta una app. Se evalúa como TRUE cuando el SO y su versión coinciden con el objetivo especificado.

Nota: Solo está disponible para apps web.

app.browserAndVersion

Elemento basado en el navegador en el que se ejecuta una app. Se evalúa como TRUE cuando el navegador y la versión del navegador coinciden con el objetivo especificado.

Nota: Solo está disponible para apps web.

app.firebaseInstallationId Elemento basado en los ID de instalaciones de dispositivos específicas. Se evalúa como TRUE cuando el ID de instalación coincide con uno de los ID de instalación especificados.
device.country Elemento basado en la región o el país en que se encuentra un dispositivo, con el estándar ISO 3166‑1 alfa‑2 (por ejemplo, US o UK). Se evalúa como TRUE cuando un país coincide con un código de país esperado.
device.dateTime Elemento basado en la hora de la última recuperación ejecutada en el dispositivo. Usa la fecha en formato ISO con la opción para especificar una zona horaria fija; por ejemplo, dateTime('2017-03-22T13:39:44', 'America/Los_Angeles').
device.language Elemento basado en el idioma seleccionado en un dispositivo. El idioma se representa mediante una etiqueta de idioma IETF, como es-ES, pt-BR o en-US. Se evalúa como TRUE cuando un idioma coincide con un código de idioma previsto.
device.os Elemento basado en el sistema operativo que se usa en un dispositivo (Apple o Android). Se evalúa como TRUE cuando el SO del dispositivo es del tipo esperado.
percent Se evalúa como TRUE según la inclusión de un usuario en un porcentaje fraccionario asignado al azar (con tamaños de muestra tan pequeños como el 0.000001%).

Una condición de un solo elemento contiene los siguientes tres campos:

  1. Un name definido de manera arbitraria (hasta 100 caracteres)
  2. Una expresión condicional que se evalúa como TRUE o FALSE, compuesta de los elementos mostrados anteriormente.
  3. El tagColor, que puede ser "BLUE", "BROWN", "CYAN", "DEEP_ORANGE", "GREEN", "INDIGO", "LIME", "ORANGE", "PINK", "PURPLE" o "TEAL" (opcional). El color no distingue mayúsculas de minúsculas y solo afecta la forma en que se muestran las condiciones de Firebase console.

Operadores admitidos

Por ejemplo, app.build.notContains([123, 456]) muestra TRUE si la compilación real de la app es 123 o 492, pero muestra FALSE si la compilación real es 999. Por ejemplo, app.version.notContains([123, 456]) muestra TRUE si la versión real de la app es 123 o 492, pero muestra FALSE si la versión real es 999.
Elemento Operadores admitidos Descripción
app.audiences .inAtLeastOne([...]) Muestra TRUE si el público real coincide con al menos un nombre de público de la lista.
Por ejemplo:

app.audiences.inAtLeastOne(['Audience 1', 'Audience 2'])

app.audiences .notInAtLeastOne([...]) Muestra TRUE si el público real no coincide con al menos un nombre de público de la lista.
app.audiences .inAll([...]) Muestra TRUE si el público real es un miembro de cada nombre de público de la lista.
app.audiences .notInAll([...]) Muestra TRUE si el público real no es miembro de ningún público de la lista.
app.firstOpenTimestamp <=, > Compara la hora del evento first_open con la hora especificada en la condición y muestra TRUE o FALSE según el operador.
Ejemplo de uso:
app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles').
Para especificar un rango:
app.firstOpenTimestamp >= ('2022-11-01T00:00:00') && app.firstOpenTimestamp < ('2022-12-01T00:00:00') Si no se especifica una zona horaria, se usa GMT.
app.userProperty <, <=, ==, !=, >=, > Muestra TRUE si la propiedad de usuario real se compara numéricamente con el valor especificado y coincide con el operador.
app.userProperty .contains([...]) Muestra TRUE si alguno de los valores de destino es una substring de la propiedad de usuario real.
app.userProperty .notContains([...]) Muestra TRUE si ninguno de los valores de destino es una substring de la propiedad de usuario real.
app.userProperty .exactlyMatches([...]) Muestra TRUE si la propiedad del usuario real coincide de forma exacta (incluidas mayúsculas y minúsculas) con alguno de los valores de destino de la lista.
app.userProperty .matches([...]) Muestra TRUE si alguna expresión regular de destino de la lista coincide con el valor real completo o una substring de este. Para forzar la coincidencia de toda la string, ingresa “^” antes de la expresión regular y agrégale el sufijo “$”. Usa la sintaxis de RE2.
app.id == Muestra TRUE si el valor especificado coincide con el ID de la app.
app.build <, <=, ==, !=, >=, > Muestra TRUE si la compilación real de la app se compara numéricamente con el valor especificado y coincide con el operador.
app.build .contains([...]) Muestra TRUE si alguno de los valores de destino es una substring de la compilación real de la app (por ejemplo, “a” y “bc” son substrings de “abc”).
app.build .notContains([...]) Muestra TRUE si ninguno de los valores de destino es una subcadena de la compilación real de la app.
app.build .exactlyMatches([...]) Muestra TRUE si la compilación real de la app coincide de forma exacta con alguno de los valores de destino de la lista.
app.build .matches([...]) Muestra TRUE si alguna expresión regular de destino de la lista coincide con el valor real completo o una substring de este. Para forzar la coincidencia de toda la string, ingresa “^” antes de la expresión regular y agrégale el sufijo “$”. Usa la sintaxis de RE2.
app.version <, <=, ==, !=, >=, > Muestra TRUE si la versión real de la app se compara numéricamente con el valor especificado y coincide con el operador.
app.version .contains([...]) Muestra TRUE si alguno de los valores de destino es una substring de la versión real de la app (por ejemplo, “a” y “bc” son substrings de “abc”).
app.version .notContains([...]) Muestra TRUE si ninguno de los valores de destino es una substring de la versión real de la app.
app.version .exactlyMatches([...]) Muestra TRUE si la versión real de la app coincide de forma exacta con alguno de los valores de destino de la lista.
app.version .matches([...]) Muestra TRUE si alguna expresión regular de destino de la lista coincide con el valor real completo o una substring de este. Para forzar la coincidencia de toda la string, ingresa “^” antes de la expresión regular y agrégale el sufijo “$”. Usa la sintaxis de RE2.
app.operatingSystemAndVersion .inOne([...]) Muestra TRUE si el SO y su versión coinciden con cualquiera de los valores de destino de la lista.
Por ejemplo:

    app.operatingSystemAndVersion.inOne([operatingSystemName('Macintosh').version.==('10.15')])
    

app.browserAndVersion .inOne([...]) Muestra TRUE si el navegador y su versión coinciden con cualquiera de los valores de destino de la lista.
Por ejemplo:

    app.browserAndVersion.inOne([browserName('Chrome').anyVersion])
    

app.firebaseInstallationId in [...] Muestra TRUE si el ID de instalación coincide con alguno de los especificados en la lista. Ejemplo de uso: app.firebaseInstallationId in ['eyJhbGciOiJFUzI1N_iIs5', 'eapzYQai_g8flVQyfKoGs7'].
device.country in [...] Muestra TRUE si el país del dispositivo coincide con alguno de los especificados en la lista. Ejemplo de uso: device.country in ['gb', 'us']. El código de país del dispositivo se determina con la dirección IP del dispositivo en la solicitud o con el código de país que determina Firebase Analytics (si los datos de Analytics se comparten con Firebase).
device.dateTime <=, > Compara la hora actual con la hora objetivo de la condición y evalúa como TRUE o FALSE según el operador. Ejemplo de uso: dateTime < dateTime('2017-03-22T13:39:44').
device.language in [...] Muestra TRUE si alguno de los idiomas de la app coincide con un idioma de la lista. Ejemplo de uso: device.language in ['en-UK', 'en-US'].
device.os ==, != Muestra TRUE si el sistema operativo del dispositivo se compara con el valor de ese campo y coincide con el operador.
percent <=, >, between Muestra TRUE si el valor del campo percent se compara con el valor asignado aleatoriamente y coincide con el operador.

Puedes especificar un valor inicial a fin de seleccionar un nuevo grupo de instancias de app asignado al azar para un rango de porcentajes determinado, como se describe en Tipos de reglas de condiciones.

Para ello, proporciona el nombre del origen antes del operador, como en el siguiente ejemplo:

percent('keyName') <= 10

Para configurar un rango específico, puedes usar el operador between. Para configurar un rango de usuarios entre 20 y 60 con el valor inicial predeterminado, usa lo siguiente:

percent between 20 and 60

Para configurar un rango de usuarios entre 60 y 80, usa un valor inicial personalizado:

percent('seedName') between 60 and 80