Confira tudo que foi anunciado no Firebase Summit e veja como usar o Firebase para acelerar o desenvolvimento de apps e executar os aplicativos com confiança. Saiba mais

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

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

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 Firebase console. Para obter mais informações sobre como configurar e usar as APIs de back-end, consulte Modificar configuração remota programaticamente .

Elementos usados ​​para criar condições

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

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 o && , 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 compilação 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 da versão de um aplicativo.

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 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 do evento first_open do 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, 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.

Observação: 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.

Observação: disponível apenas para aplicativos da Web.

app.firebaseInstallationId Um elemento baseado nas 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 que o dispositivo executa. 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 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 um percentil fracionário atribuído 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 como as condições são exibidas no Firebase console.

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 um membro de cada nome de público na 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 se compara numericamente 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 do usuário real.
app.userProperty .notContains([...]) Retorna TRUE se nenhum dos valores de destino for uma substring da propriedade do usuário real.
app.userProperty .exactlyMatches([...]) Retorna TRUE se a propriedade real do usuário corresponder exatamente (com distinção entre maiúsculas e 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 a todo o valor real. Para forçar a correspondência de toda a string, anteceda a expressão regular com "^" e coloque o sufixo "$". Usa sintaxe RE2 .
app.id == Retorna TRUE se o valor especificado corresponder à ID do aplicativo.
app.build < , <= , == , != , >= , > Retorna TRUE se a compilação do aplicativo real se compara numericamente ao valor especificado de uma forma que corresponda ao operador.
app.build .contains([...]) Retorna TRUE se qualquer um dos valores de destino for uma substring da compilação do aplicativo real — 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 compilação do aplicativo real.
app.build .exactlyMatches([...]) Retorna TRUE se a compilação do aplicativo real 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 a todo o valor real. Para forçar a correspondência de toda a string, anteceda a expressão regular com "^" e coloque o sufixo "$". Usa sintaxe RE2 .
app.version < , <= , == , != , >= , > Retorna TRUE se a versão real do aplicativo se compara numericamente 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 a todo o valor real. Para forçar a correspondência de toda a string, anteceda a expressão regular com "^" e coloque o 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 um 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 tempo atual com o tempo 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 [...] Retorna TRUE se algum dos idiomas do aplicativo corresponder a um idioma na 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 <= , > Retorna TRUE se o valor no campo de percent for comparado ao valor que foi atribuído aleatoriamente para corresponder ao operador.