Referência de expressão condicional do Configuração remota

Esta página contém informações de referência para criar expressões condicionais usando APIs de back-end do Configuração remota ou o Console do Firebase. Para obter mais informações sobre como configurar e usar APIs de back-end, consulte Modificar a Configuração remota programaticamente .

Elementos usados ​​para criar condições

A API REST do Configuração remota oferece suporte aos mesmos elementos que você pode usar para criar condições ao configurar a Configuração remota usando o Firebase Console:

Elemento Descrição
&&

Usado para criar um "e" lógico de elementos se estiver usando mais de um elemento para uma condição. Se um elemento for usado na sintaxe REST sem && , esse elemento será tratado como uma condição.

Nota: é necessário um espaço antes e depois do E comercial. Por exemplo: element1 && element2 .

app.build

Avalia como TRUE ou FALSE com base no valor do número de build de um aplicativo.

Nota: 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

Avalia como TRUE ou FALSE com base no valor do número de versão de um aplicativo.

Nota: Para dispositivos Android use o valor versionName e para dispositivos Apple use o valor CFBundleShortVersionString .

app.id Um elemento baseado no Firebase App ID do aplicativo
app.audiences Um elemento avaliado como TRUE ou FALSE com base na presença ou ausência do usuário em um ou mais públicos-alvo do Firebase Analytics .
app.firstOpenTimestamp Um elemento baseado na primeira vez que o usuário inicia um aplicativo, obtido no evento first_open do Google Analytics. Usa 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, GMT será usado.
app.userProperty Um elemento avaliado como 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 no qual um aplicativo está sendo executado. Avalia como TRUE quando o sistema operacional e a versão do sistema operacional correspondem ao destino especificado.

Nota: Disponível apenas para aplicativos da Web.

app.browserAndVersion

Um elemento baseado no navegador no qual um aplicativo está sendo executado. Avalia como TRUE quando o navegador e a versão do navegador correspondem ao destino especificado.

Nota: Disponível apenas para aplicativos da Web.

app.firebaseInstallationId Um elemento baseado nos IDs de instalações de dispositivos específicos. Avalia como TRUE quando o ID de instalação corresponde a um dos IDs de instalação especificados.
device.country Um elemento baseado na região/país em que um dispositivo está localizado, usando o padrão ISO 3166-1 alfa-2 (por exemplo, EUA ou Reino Unido). Avalia como TRUE quando um país corresponde a um código de país esperado.
device.dateTime Um elemento baseado na hora da última busca executada pelo dispositivo. Usa 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 usando uma tag IETF Language, como es-ES, pt-BR ou en-US. Avalia como TRUE quando um idioma corresponde a um código de idioma esperado.
device.os Um elemento baseado no sistema operacional usado em um dispositivo (Apple ou Android). Avalia como TRUE quando o sistema operacional do dispositivo é do tipo esperado.
percent Avalia como TRUE com base na inclusão de um usuário em uma porcentagem fracionária atribuída aleatoriamente (com tamanhos de amostra tão pequenos quanto 0,000001%).

Uma condição de elemento único contém três campos:

  1. Um name definido arbitrariamente (até 100 caracteres)
  2. Uma expressão condicional avaliada como TRUE ou FALSE , composta pelos elementos mostrados acima.
  3. (Opcional) A tagColor , que pode ser " BLUE ", " BROWN ", " CYAN ", " DEEP_ORANGE ", " GREEN ", " INDIGO ", " LIME ", " ORANGE ", " PINK ", " PURPLE ", ou " TEAL ". A cor não diferencia maiúsculas de minúsculas e afeta apenas a forma como as condições são exibidas no console do Firebase.

Operadores suportados

Por exemplo, app.build.notContains([123, 456]) retorna TRUE se a compilação real do aplicativo for 123 ou 492, mas retornará FALSE se a compilação real do aplicativo for 999. Por exemplo, app.version.notContains([123, 456]) retorna TRUE se a versão real do aplicativo for 123 ou 492, mas retorna FALSE se a versão real do aplicativo for 999.
Elemento Operadores suportados Descrição
app.audiences .inAtLeastOne([...]) Retorna TRUE se o público real corresponder a pelo menos um nome de público na lista.
Por exemplo:

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

app.audiences .notInAtLeastOne([...]) Retorna TRUE se o público real não corresponder a pelo menos um nome de público na lista.
app.audiences .inAll([...]) Retorna TRUE se o público real for membro de todos os nomes de público da lista.
app.audiences .notInAll([...]) Retorna TRUE se o público real não for membro de nenhum público da lista.
app.firstOpenTimestamp <=, > Compara a hora do evento first_open com a hora especificada na condição e retorna TRUE ou FALSE com base no operador.
Uso de amostra:
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, GMT será usado.
app.userProperty < , <= , == , != , >= , > Retorna TRUE se a propriedade real do usuário for numericamente comparada ao valor especificado de uma forma que corresponda ao operador.
app.userProperty .contains([...]) Retorna TRUE se algum dos valores de destino for uma substring da propriedade real do usuário.
app.userProperty .notContains([...]) Retorna TRUE se nenhum dos valores de destino for uma substring da propriedade real do usuário.
app.userProperty .exactlyMatches([...]) Retorna TRUE se a propriedade real do usuário corresponder exatamente (diferenciando maiúsculas de minúsculas) a qualquer um dos valores de destino na lista.
app.userProperty .matches([...]) Retorna TRUE se qualquer expressão regular de destino na lista corresponder a uma substring ou ao valor real inteiro. Para forçar a correspondência de toda a string, preceda a expressão regular com "^" e coloque no sufixo "$". Usa sintaxe RE2 .
app.id == Retorna TRUE se o valor especificado corresponder ao ID do aplicativo do aplicativo.
app.build < , <= , == , != , >= , > Retorna TRUE se a compilação real do aplicativo for numericamente comparada ao valor especificado de uma forma que corresponda ao operador.
app.build .contains([...]) Retorna TRUE se algum dos valores de destino for uma substring da compilação real do aplicativo — por exemplo, "a" e "bc" são substrings de "abc".
app.build .notContains([...]) Retorna TRUE se nenhum dos valores de destino for uma substring da construção real do aplicativo.
app.build .exactlyMatches([...]) Retorna TRUE se a compilação real do aplicativo corresponder exatamente a qualquer um dos valores de destino na lista.
app.build .matches([...]) Retorna TRUE se qualquer expressão regular de destino na lista corresponder a uma substring ou ao valor real inteiro. Para forçar a correspondência de toda a string, preceda a expressão regular com "^" e coloque no sufixo "$". Usa sintaxe RE2 .
app.version < , <= , == , != , >= , > Retorna TRUE se a versão real do aplicativo for numericamente comparada ao valor especificado de uma forma que corresponda ao operador.
app.version .contains([...]) Retorna TRUE se algum dos valores de destino for uma substring da versão real do aplicativo — por exemplo, "a" e "bc" são substrings de "abc".
app.version .notContains([...]) Retorna TRUE se nenhum dos valores de destino for uma substring da versão real do aplicativo.
app.version .exactlyMatches([...]) Retorna TRUE se a versão real do aplicativo corresponder exatamente a qualquer um dos valores de destino na lista.
app.version .matches([...]) Retorna TRUE se qualquer expressão regular de destino na lista corresponder a uma substring ou ao valor real inteiro. Para forçar a correspondência de toda a string, preceda a expressão regular com "^" e coloque no sufixo "$". Usa sintaxe RE2 .
app.operatingSystemAndVersion .inOne([...]) Retorna TRUE se o sistema operacional e a versão corresponderem a qualquer um dos valores de destino na lista.
Por exemplo:

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

app.browserAndVersion .inOne([...]) Retorna TRUE se o navegador e a versão corresponderem a qualquer um dos valores de destino na lista.
Por exemplo:

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

app.firebaseInstallationId in [...] Retorna TRUE se o ID de instalação corresponder a qualquer um 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 qualquer país especificado na lista. Exemplo de uso: device.country in ['gb', 'us'] . O código do país do dispositivo é determinado usando o endereço IP do dispositivo na solicitação ou o 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 alvo 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 [...] Retorna TRUE se algum dos idiomas do aplicativo corresponder a um idioma da lista. Exemplo de uso: device.language in ['en-UK', 'en-US'] .
device.os == , != Retorna TRUE se o sistema operacional do dispositivo for comparado ao valor nesse campo correspondente ao operador.
percent <= , > , between Retorna TRUE se o valor no campo percent for comparado ao valor que foi atribuído aleatoriamente de acordo com o operador.

Você pode especificar uma semente para selecionar um novo grupo de instâncias de aplicativo atribuído aleatoriamente para um determinado intervalo de porcentagem, conforme descrito em Tipos de regras de condição .

Para fazer isso, forneça o nome da semente antes do operador, como no exemplo a seguir:

percent('keyName') <= 10

Para configurar um intervalo específico, você pode usar o operador between . Para configurar um intervalo de usuários entre 20 e 60 usando a semente padrão :

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