Esta página contém informações de referência para criar expressões condicionais usando as APIs de back-end de Remote Config ou o console de Firebase. Para saber como configurar e usar as APIs de back-end, consulte Modificar a Configuração remota de maneira programática.
Elementos usados para criar condições
A API REST de Remote Config é compatível com os mesmos elementos que podem ser usados para criar condições ao configurar Remote Config usando o console do Firebase:
Elemento | Descrição |
---|---|
&& |
Usado para criar um "e" lógico de elementos caso você use mais de um elemento para uma condição. Se um elemento for usado na sintaxe REST sem Observação: é necessário inserir um espaço antes e depois do "e" comercial. Exemplo:
|
app.build |
Elemento que muda para Observação: disponível apenas em dispositivos Apple e Android. Para Apple, use o valor de CFBundleVersion e, para Android, use o valor de versionCode. |
app.version |
Elemento que muda para Observação: para dispositivos Android, use o valor de versionName e, para dispositivos Apple, use o valor de CFBundleShortVersionString. |
app.id |
Um elemento baseado no ID do app no Firebase |
app.audiences |
Elemento que muda para TRUE ou FALSE com base na presença ou ausência do usuário em um ou mais públicos do Firebase Analytics. |
app.firstOpenTimestamp |
Um elemento baseado na primeira vez que o usuário abre um app e extraído do
evento first_open de Google Analytics. Usa o formato de data
ISO com a opção de especificar um fuso horário fixo, por exemplo,
app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles') .
Se nenhum fuso horário for especificado, será usado o horário GMT.
|
app.userProperty |
Elemento que muda para TRUE ou FALSE com base
no valor numérico ou de string de uma
propriedade do usuário do Firebase Analytics. |
app.operatingSystemAndVersion |
Um elemento baseado no sistema operacional em que um app está sendo executado.
Ele muda para Observação: disponível apenas para apps da Web. |
app.browserAndVersion |
Um elemento baseado no navegador em que um app está sendo executado.
Ele muda para Observação: disponível apenas para apps da Web. |
app.firebaseInstallationId |
Um elemento baseado nos IDs das instalações específicas dos dispositivos.
Ele muda para TRUE quando o ID de instalação
corresponde a um dos IDs de instalação especificados. |
device.country |
Um elemento com base na região/país em que um dispositivo está localizado, usando o padrão ISO 3166-1 Alpha-2 (por exemplo, US ou UK). Ele muda para TRUE quando um país corresponde a um código de país esperado. |
device.dateTime |
Um elemento baseado no horário da última busca que o dispositivo realizou.
Usa o formato de data ISO com a opção de especificar um fuso horário fixo. Por exemplo, dateTime('2017-03-22T13:39:44', 'America/Los_Angeles') . |
device.language |
Um elemento baseado no idioma selecionado em um dispositivo. O idioma é representado por uma tag de idioma IETF, como es-ES, pt-BR ou en-US.
Ele muda para TRUE quando o idioma corresponde a um código de idioma
esperado. |
device.os |
Um elemento baseado no sistema operacional usado em um dispositivo, que pode ser Apple ou Android.
Ele muda para TRUE quando o SO do dispositivo é do tipo esperado. |
percent |
Elemento que muda para TRUE com base na inclusão de um usuário em uma porcentagem
fracionária atribuída aleatoriamente, com tamanhos de amostra de 0,000001%. |
Uma condição de elemento único contém três campos:
- Definido arbitrariamente
name
(até 100 caracteres) - Uma expressão condicional que muda para
TRUE
ouFALSE
, composta pelos elementos mostrados acima - (Opcional)
tagColor
, que pode serBLUE
,BROWN
,CYAN
,DEEP_ORANGE
,GREEN
,INDIGO
,LIME
,ORANGE
,PINK
,PURPLE
ouTEAL
. A cor não diferencia maiúsculas de minúsculas e afeta apenas a maneira como as condições são exibidas no console de Firebase.
Operadores compatíveis
Por exemplo,app.build.notContains([123, 456])
retorna TRUE
se o build real do app for 123 ou 492, mas retorna FALSE
se o build real for 999.
Por exemplo, app.version.notContains([123, 456])
retorna TRUE
se a versão real do app for 123 ou 492, mas retorna FALSE
se a versão real for 999.
Elemento | Operadores compatíveis | Descrição |
---|---|---|
app.audiences |
.inAtLeastOne([...]) |
Retornará TRUE se o público real corresponder a pelo menos um nome de público da lista.Exemplo: app.audiences.inAtLeastOne(['Audience 1', 'Audience 2']) |
app.audiences |
.notInAtLeastOne([...]) |
Retornará TRUE se o público real não corresponder a pelo menos um nome de público da lista. |
app.audiences |
.inAll([...]) |
Retornará TRUE se o público real for um membro de todos os nomes de público da lista. |
app.audiences |
.notInAll([...]) |
Retornará TRUE se o público real não for membro de nenhum
público da lista. |
app.firstOpenTimestamp |
<=, > |
Compara o horário do evento first_open com o horário
especificado na condição e retorna TRUE ou FALSE
com base no operador.Exemplo de uso: app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles')
Para especificar um intervalo: app.firstOpenTimestamp >= ('2022-11-01T00:00:00') && app.firstOpenTimestamp < ('2022-12-01T00:00:00')
Se nenhum fuso horário for especificado, o GMT será usado.
|
app.userProperty |
< , <= , == , != ,
>= , > |
Retornará TRUE se a propriedade do usuário real for numericamente comparável ao valor especificado de forma que corresponda ao operador. |
app.userProperty |
.contains([...]) |
Retornará TRUE se algum dos valores de destino for uma substring da propriedade do usuário real. |
app.userProperty |
.notContains([...]) |
Retornará TRUE se nenhum dos valores de destino for uma substring da propriedade do usuário real. |
app.userProperty |
.exactlyMatches([...]) |
Retornará TRUE se a propriedade do usuário real corresponder exatamente (com distinção entre maiúsculas e minúsculas) a qualquer um dos valores de destino na lista. |
app.userProperty |
.matches([...]) |
Retornará TRUE se qualquer expressão regular de destino na lista corresponder a uma substring ou a todo o valor real. Para gerar a correspondência de toda a string, use "^" antes da expressão regular e "$" no final dela. Usa a sintaxe RE2. |
app.id |
== |
Retornará TRUE caso o valor especificado corresponda ao ID do app. |
app.build |
< , <= , == , != ,
>= , > |
Retornará TRUE se o build real do app for comparável de maneira numérica
ao valor especificado de uma forma correspondente ao operador. |
app.build |
.contains([...]) |
Retornará TRUE se algum dos valores de destino for uma substring do build real do app. Por exemplo, "a" e "bc" são substrings de "abc". |
app.build |
.notContains([...]) |
Retornará TRUE se nenhum dos valores de destino for uma substring do build real do app. |
app.build |
.exactlyMatches([...]) |
Retornará TRUE se o build real do aplicativo corresponder exatamente a qualquer um dos valores de destino na lista. |
app.build |
.matches([...]) |
Retornará TRUE se qualquer expressão regular de destino na lista corresponder a uma substring ou a todo o valor real. Para gerar a correspondência de toda a string, use "^" antes da expressão regular e "$" no final dela. Usa a sintaxe RE2. |
app.version |
< , <= , == , != ,
>= , > |
Retornará TRUE se a versão real do app for comparável de maneira numérica
ao valor especificado de uma forma correspondente ao operador. |
app.version |
.contains([...]) |
Retornará TRUE se algum dos valores de destino for uma substring da versão real do app, por exemplo, "a" e "bc" são substrings de "abc". |
app.version |
.notContains([...]) |
Retornará TRUE se nenhum dos valores de destino for uma substring da versão real do app. |
app.version |
.exactlyMatches([...]) |
Retornará TRUE se a versão real do app corresponder exatamente a qualquer um dos valores de destino na lista. |
app.version |
.matches([...]) |
Retornará TRUE se qualquer expressão regular de destino na lista corresponder a uma substring ou a todo o valor real. Para gerar a correspondência de toda a string, use "^" antes da expressão regular e "$" no final dela. Usa a sintaxe RE2. |
app.operatingSystemAndVersion |
.inOne([...]) |
Retornará TRUE se o SO e a versão corresponderem a qualquer um dos valores desejados na lista.Exemplo: app.operatingSystemAndVersion.inOne([operatingSystemName('Macintosh').version.==('10.15')]) |
app.browserAndVersion |
.inOne([...]) |
Retornará TRUE se o navegador e a versão corresponderem a qualquer um dos valores desejados na lista.Exemplo: app.browserAndVersion.inOne([browserName('Chrome').anyVersion]) |
app.firebaseInstallationId |
in [...] |
Retornará TRUE se o ID de instalação corresponder a
algum especificado na lista. Exemplo de uso: app.firebaseInstallationId
in ['eyJhbGciOiJFUzI1N_iIs5', 'eapzYQai_g8flVQyfKoGs7'] |
device.country |
in [...] |
Retorna TRUE se o país do dispositivo corresponder a algum país especificado na lista. Exemplo de uso: device.country in
['gb', 'us'] .
O código do país do dispositivo é determinado por meio do endereço IP do dispositivo na solicitação ou do código do país determinado pelo Firebase Analytics (se os dados do Analytics forem compartilhados com o Firebase). |
device.dateTime |
<= , > |
Compara o horário atual com o horário de destino da condição e avalia como TRUE ou FALSE com base no operador. Exemplo de uso: dateTime < dateTime('2017-03-22T13:39:44') . |
device.language |
in [...] |
Retornará TRUE se qualquer um dos idiomas do app corresponder a um idioma na lista. Exemplo de uso: device.language in ['en-UK', 'en-US'] . |
device.os |
== , != |
Retornará TRUE se o sistema operacional do dispositivo for comparável
ao valor nesse campo correspondente ao operador. |
percent |
<= , > , between |
Retornará TRUE se o valor no campo percent
for comparável ao valor atribuído aleatoriamente que corresponde ao operador.
É possível especificar uma semente para selecionar um novo grupo de instâncias de apps atribuído aleatoriamente para um determinado intervalo de porcentagem, conforme descrito em Tipos de regra de condição. Para isso, forneça o nome da semente antes do operador, como no exemplo a seguir: percent('keyName') <= 10 Para configurar um intervalo específico, use o operador
percent between 20 and 60 Para configurar um intervalo de usuários entre 60 e 80 usando uma semente personalizada: percent('seedName') between 60 and 80 |