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 Nota: Se debe colocar un espacio antes y después de los signos “&”. Por ejemplo: |
app.build |
Se evalúa como 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 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 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 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:
- Un
name
definido de manera arbitraria (hasta 100 caracteres) - Una expresión condicional que se evalúa como
TRUE
oFALSE
, compuesta de los elementos mostrados anteriormente. - 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
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 |