Referencia de expresión condicional de Remote Config

Esta página contiene información de referencia para crear expresiones condicionales mediante las API de backend de Remote Config o Firebase console. Para obtener más información sobre la configuración y el uso de las API de backend, consulte Modificar Remote Config mediante programación .

Elementos utilizados para crear condiciones.

La API REST de Remote Config admite los mismos elementos que puedes usar para crear condiciones al configurar Remote Config usando Firebase Console:

Elemento Descripción
&&

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

Nota: se requiere un espacio antes y después de los símbolos. 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 aplicación.

Nota: Solo disponible en dispositivos Apple y Android. Para Apple, use el valor de CFBundleVersion y para Android, use el valor de versionCode .

app.version

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

Nota: Para dispositivos Android, utilice el valor de versionName y para dispositivos Apple, utilice el valor de CFBundleShortVersionString .

app.id Un elemento basado en el ID de la aplicación Firebase de la aplicación
app.audiences Un elemento que se evalúa como TRUE o FALSE según la presencia o ausencia del usuario en una o más audiencias de Firebase Analytics .
app.firstOpenTimestamp Un elemento basado en la primera vez que el usuario inicia una aplicación, obtenido del evento first_open de Google Analytics. Utiliza el formato de fecha ISO con la opción de especificar una zona horaria fija; por ejemplo, app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles') . Si no se especifica ninguna zona horaria, se utiliza GMT.
app.userProperty Un elemento que se evalúa como TRUE o FALSE según el valor numérico o de cadena de una propiedad de usuario de Firebase Analytics .
app.operatingSystemAndVersion

Un elemento basado en el sistema operativo en el que se ejecuta una aplicación. Se evalúa como TRUE cuando el sistema operativo y la versión del sistema operativo coinciden con el objetivo especificado.

Nota: Solo disponible para aplicaciones web.

app.browserAndVersion

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

Nota: Solo disponible para aplicaciones web.

app.firebaseInstallationId Un elemento basado en los ID de instalaciones de dispositivos específicos. Se evalúa como TRUE cuando el ID de instalación coincide con uno de los ID de instalación especificados.
device.country Un elemento basado en la región/país en el que se encuentra un dispositivo, utilizando el estándar ISO 3166-1 alfa-2 (por ejemplo, EE. UU. o Reino Unido). 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 búsqueda que realizó el dispositivo. Utiliza el formato de fecha ISO con la opción de especificar una zona horaria fija; por ejemplo, dateTime('2017-03-22T13:39:44', 'America/Los_Angeles') .
device.language Un 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 esperado.
device.os Elemento basado en el sistema operativo utilizado en un dispositivo (Apple o Android). Se evalúa como TRUE cuando el sistema operativo del dispositivo es del tipo esperado.
percent Se evalúa como TRUE en función de la inclusión de un usuario en un porcentaje fraccionario asignado aleatoriamente (con tamaños de muestra tan pequeños como 0,000001%).

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

  1. Un name definido arbitrariamente (hasta 100 caracteres)
  2. Una expresión condicional que se evalúa como TRUE o FALSE , compuesta por los elementos que se muestran arriba.
  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 afecta la forma en que se muestran las condiciones en Firebase console.

Operadores soportados

Por ejemplo, app.build.notContains([123, 456]) devuelve TRUE si la compilación real de la aplicación es 123 o 492, pero devuelve FALSE si la compilación real de la aplicación es 999. Por ejemplo, app.version.notContains([123, 456]) devuelve TRUE si la versión real de la aplicación es 123 o 492, pero devuelve FALSE si la versión real de la aplicación es 999.
Elemento Operadores soportados Descripción
app.audiences .inAtLeastOne([...]) Devuelve TRUE si la audiencia real coincide con al menos un nombre de audiencia en la lista.
Por ejemplo:

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

app.audiences .notInAtLeastOne([...]) Devuelve TRUE si la audiencia real no coincide con al menos un nombre de audiencia en la lista.
app.audiences .inAll([...]) Devuelve TRUE si la audiencia real es miembro de cada nombre de audiencia en la lista.
app.audiences .notInAll([...]) Devuelve TRUE si la audiencia real no es miembro de ninguna audiencia de la lista.
app.firstOpenTimestamp <=, > Compara la hora del evento first_open con la hora especificada en la condición y devuelve TRUE o FALSE según el operador.
Uso de muestra:
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 ninguna zona horaria, se utiliza GMT.
app.userProperty < , <= , == , != , >= , > Devuelve TRUE si la propiedad del usuario real se compara numéricamente con el valor especificado de una manera que coincida con el operador.
app.userProperty .contains([...]) Devuelve TRUE si alguno de los valores objetivo es una subcadena de la propiedad del usuario real.
app.userProperty .notContains([...]) Devuelve TRUE si ninguno de los valores objetivo es una subcadena de la propiedad del usuario real.
app.userProperty .exactlyMatches([...]) Devuelve TRUE si la propiedad del usuario real coincide exactamente (distingue entre mayúsculas y minúsculas) con cualquiera de los valores objetivo de la lista.
app.userProperty .matches([...]) Devuelve TRUE si alguna expresión regular de destino en la lista coincide con una subcadena del valor real o con el valor real completo. Para forzar la coincidencia de toda la cadena, anteponga la expresión regular "^" y agregue el sufijo "$". Utiliza la sintaxis RE2 .
app.id == Devuelve TRUE si el valor especificado coincide con el ID de aplicación de la aplicación.
app.build < , <= , == , != , >= , > Devuelve TRUE si la compilación real de la aplicación se compara numéricamente con el valor especificado de una manera que coincida con el operador.
app.build .contains([...]) Devuelve TRUE si alguno de los valores objetivo es una subcadena de la compilación de la aplicación real; por ejemplo, "a" y "bc" son subcadenas de "abc".
app.build .notContains([...]) Devuelve TRUE si ninguno de los valores objetivo es una subcadena de la compilación de la aplicación real.
app.build .exactlyMatches([...]) Devuelve TRUE si la compilación de la aplicación real coincide exactamente con cualquiera de los valores objetivo de la lista.
app.build .matches([...]) Devuelve TRUE si alguna expresión regular de destino en la lista coincide con una subcadena del valor real o con el valor real completo. Para forzar la coincidencia de toda la cadena, anteponga la expresión regular "^" y agregue el sufijo "$". Utiliza la sintaxis RE2 .
app.version < , <= , == , != , >= , > Devuelve TRUE si la versión real de la aplicación se compara numéricamente con el valor especificado de una manera que coincida con el operador.
app.version .contains([...]) Devuelve TRUE si alguno de los valores objetivo es una subcadena de la versión real de la aplicación; por ejemplo, "a" y "bc" son subcadenas de "abc".
app.version .notContains([...]) Devuelve TRUE si ninguno de los valores objetivo es una subcadena de la versión real de la aplicación.
app.version .exactlyMatches([...]) Devuelve TRUE si la versión real de la aplicación coincide exactamente con cualquiera de los valores objetivo de la lista.
app.version .matches([...]) Devuelve TRUE si alguna expresión regular de destino en la lista coincide con una subcadena del valor real o con el valor real completo. Para forzar la coincidencia de toda la cadena, anteponga la expresión regular "^" y agregue el sufijo "$". Utiliza la sintaxis RE2 .
app.operatingSystemAndVersion .inOne([...]) Devuelve TRUE si el sistema operativo y la versión coinciden con alguno de los valores objetivo de la lista.
Por ejemplo:

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

app.browserAndVersion .inOne([...]) Devuelve TRUE si el navegador y la versión coinciden con alguno de los valores objetivo de la lista.
Por ejemplo:

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

app.firebaseInstallationId in [...] Devuelve TRUE si la identificación de instalación coincide con alguna especificada en la lista. Uso de muestra: app.firebaseInstallationId in ['eyJhbGciOiJFUzI1N_iIs5', 'eapzYQai_g8flVQyfKoGs7']
device.country in [...] Devuelve TRUE si el país del dispositivo coincide con alguno especificado en la lista. Uso de muestra: device.country in ['gb', 'us'] . 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).
device.dateTime <= , > Compara la hora actual con la hora objetivo de la condición y la evalúa como TRUE o FALSE según el operador. Uso de muestra: dateTime < dateTime('2017-03-22T13:39:44') .
device.language in [...] Devuelve TRUE si alguno de los idiomas de la aplicación coincide con un idioma de la lista. Uso de muestra: device.language in ['en-UK', 'en-US'] .
device.os == , != Devuelve TRUE si el sistema operativo del dispositivo se compara con el valor en ese campo que coincide con el operador.
percent <= , > , between Devuelve TRUE si el valor en el campo percent se compara con el valor asignado aleatoriamente que coincide con el operador.

Puede especificar una semilla para seleccionar un nuevo grupo de instancias de aplicación asignado aleatoriamente para un rango de porcentaje determinado, como se describe en Tipos de reglas de condición .

Para hacer esto, proporcione el nombre de la semilla antes del operador, como en el siguiente ejemplo:

percent('keyName') <= 10

Para configurar un rango específico, puede utilizar el operador between . Para configurar un rango de usuarios entre 20 y 60 usando la semilla predeterminada :

percent between 20 and 60

Para configurar un rango de usuarios entre 60 y 80 usando una semilla personalizada:

percent('seedName') between 60 and 80