Ir a la consola

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

Esta página contiene información de referencia para compilar expresiones condicionales mediante la API de REST de Remote Config o Firebase console. Para obtener más información sobre la configuración y el uso de la API, consulta Usa la API de REST de Remote Config.

Elementos usados para crear condiciones

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

Elemento Descripción
&&

Se usa para crear un “y” lógico de elementos si usas más de un elemento para una condición. Si se usa 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.version Se evalúa como TRUE o FALSE según el valor del número de versión de una app.
app.id Un elemento que está basado en el ID de app de Firebase de la app.
app.audiences Un 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.userProperty Un 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.
device.country Un elemento que está basado en la región o el país en el que se encuentra un dispositivo, con el estándar ISO 3166‑1 alpha‑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 Un 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 Un elemento que está 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 esperado.
device.os Un elemento que está basado en el sistema operativo que se usa en un dispositivo (iOS 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 percentil fraccionario asignado al azar (con tamaños de muestra tan pequeños como el 0.000001%).

Una condición de un solo elemento contiene 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. (Opcional) El tagColor, que puede ser "BLUE", "BROWN", "CYAN", "DEEP_ORANGE", "GREEN", "INDIGO", "LIME", "ORANGE", "PINK", "PURPLE" o "TEAL". El color no distingue entre mayúsculas y minúsculas y solo influye en la apariencia de las condiciones en Firebase console

Operadores admitidos

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 de la app 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.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 subcadena de la propiedad de usuario real.
app.userProperty .notContains([...]) Muestra TRUE si ninguno de los valores de destino es una subcadena de la propiedad del 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 agrega el sufijo “$”. Usa la sintaxis RE2.
app.id == Muestra TRUE si el valor especificado coincide con el ID de la app.
app.version .contains([...]) Muestra TRUE si alguno de los valores de destino es una subcadena de la versión real de la app (por ejemplo, "a" y "bc" son subcadenas de "abc").
app.version .notContains([...]) Muestra TRUE si ninguno de los valores de destino es una subcadena 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 cualquier 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 RE2.
device.country in [...] Muestra TRUE si el país del dispositivo coincide con alguno de los especificados en la lista. Ejemplo: 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: 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 <=, > Muestra TRUE si el valor del campo percent se compara con el valor asignado al azar y coincide con el operador.

Parámetros con strings vacías y sin valor

Cuando creas o editas valores de parámetros en la consola web de Remote Config, tienes la opción de configurar un valor del parámetro como un valor string (string vacía) o Sin valor (en este caso, se usa el valor predeterminado dentro de la app en lugar del valor que aparece en la plantilla de Remote Config).

Cuando usas la API de Remote Config para obtener la plantilla de Remote Config de tu proyecto en formato JSON, Sin valor se representa de la siguiente manera:

"myCondition" : {
  "useInAppDefault" : true
},

Del mismo modo, (string vacía) se representa de la siguiente forma:

"myCondition" : {
  "value" : ""
},