É possível configurar modelos para casos de uso de cliente e servidor. Modelos de clientes são disponibilizados a todas as instâncias de app que implementam os SDKs de cliente do Firebase para Remote Config, incluindo apps Android, Apple, Web, Unity, Flutter e C++. Os parâmetros e valores de Remote Config de modelos específicos do servidor são disponibilizados para implementações de Remote Config (incluindo Cloud Run e Cloud Functions) que usam o SDK Admin do Node.js para Firebase v12.1.0 ou mais recente.
Ao usar o console de Firebase ou as APIs de back-end de Remote Config, você define um ou mais parâmetros (pares de chave-valor) e informa valores padrão no app para esses parâmetros. É possível substituir valores padrão no app definindo valores de parâmetros. As chaves e os valores de parâmetros são strings, mas esses valores podem ser transmitidos como outros tipos de dados quando você usa esses valores no seu app.
Com o console de Firebase, Admin SDK ou a API REST de Remote Config, é possível criar novos valores padrão para os parâmetros, além de valores condicionais usados para segmentar grupos de instâncias de app. Sempre que você atualiza a configuração no console do Firebase, o Firebase cria e publica uma nova versão do modelo de Remote Config. A versão anterior é armazenada, o que permite fazer uma recuperação ou uma reversão conforme necessário. Essas operações estão disponíveis no console de Firebase, em Firebase Admin SDK e na API REST e são descritas em mais detalhes em Gerenciar versões de modelos de Remote Config.
Este guia explica parâmetros, condições, regras, valores condicionais e como os diversos valores de parâmetros são priorizados no back-end de Remote Config e no app. Ele também contém detalhes dos tipos de regras usados para criar condições.
Condições, regras e valores condicionais
Uma condição é usada para segmentar um grupo de instâncias de aplicativos. As condições são constituídas por uma ou mais regras que precisam ser avaliadas como true
para que a condição seja avaliada como true
em uma determinada instância do aplicativo. Se o valor de uma regra for indefinido (por exemplo, quando não houver valor disponível), essa regra será avaliada como false
.
Por exemplo, é possível criar um parâmetro que defina o nome e a string de versão de um modelo de linguagem grande (LLM) e veicular respostas de diferentes modelos com base em regras de indicador personalizado. Nesse caso, você pode usar uma versão estável do modelo como o valor padrão para atender à maioria das solicitações e usar o indicador personalizado para utilizar um modelo experimental e responder às solicitações de teste dos clientes.
Um parâmetro pode ter diversos valores condicionais que usam condições diferentes. Os parâmetros podem compartilhar condições em um projeto. Na guia Parâmetros do console de Firebase, é possível conferir a porcentagem de busca dos valores condicionais de cada parâmetro. Essa métrica indica a porcentagem de solicitações nas últimas 24 horas que receberam cada valor.
Prioridade dos valores de parâmetros
Um parâmetro pode ter diversos valores condicionais associados. Estas regras determinam qual valor é buscado no modelo de Remote Config e qual valor é usado em uma determinada instância de app em um determinado momento:
Primeiro, os valores condicionais são aplicados a qualquer condição avaliada como
true
para uma determinada solicitação de cliente. Se várias condições forem avaliadas comotrue
, a primeira (superior) mostrada na interface do console de Firebase terá precedência e os valores condicionais associados a ela serão fornecidos quando um app recuperar valores do back-end. É possível alterar a prioridade das condições ao arrastá-las e soltá-las na guia Condições.Se não houver valores condicionais com condições que sejam avaliadas como
true
, o valor padrão de Remote Config será fornecido quando um app buscar valores do back-end. Se um parâmetro não existir no back-end ou o valor padrão for definido como Usar padrão no app, nenhum valor será fornecido para o parâmetro quando um app buscar valores.
No seu app, os valores dos parâmetros são retornados por métodos get
de acordo com a seguinte lista de prioridades:
- Se um valor tiver sido buscado no back-end e ativado, o app usará o valor recuperado. Os valores dos parâmetros ativados são permanentes.
Se nenhum valor tiver sido buscado no back-end ou os valores buscados no back-end de Remote Config não tiverem sido ativados, o app vai usar o valor padrão que estão nele.
Para saber como receber e definir valores padrão, acesse Fazer o download dos padrões de modelo de Remote Config.
Se nenhum valor padrão no app tiver sido definido, o app vai usar um valor de tipo estático (como
0
paraint
efalse
paraboolean
).
Confira neste gráfico o resumo de como os valores de parâmetro são priorizados no back-end de Remote Config e no app:
Tipos de dados de valores de parâmetros
Remote Config permite selecionar um tipo de dados para cada parâmetro e
valida todos os valores de Remote Config em relação a esse tipo antes de uma atualização
de modelo. O tipo de dados é armazenado e retornado em uma
solicitação getRemoteConfig
.
Os tipos de dados compatíveis são:
String
Boolean
Number
JSON
Na interface do console de Firebase, o tipo de dados pode ser selecionado em um
menu suspenso ao lado da chave de parâmetro. Na API REST, é possível definir os tipos usando
o campo value_type
no objeto de parâmetro.
Grupos de parâmetros
Remote Config permite agrupar parâmetros para ter uma interface mais organizada e melhorar a usabilidade.
Por exemplo, imagine que você precisa ativar ou desativar três tipos diferentes de autenticação ao lançar um novo recurso de login. Com Remote Config, é possível criar os três parâmetros para ativar os tipos que você quer e organizá-los em um grupo chamado Novo login, sem necessidade de adicionar prefixos ou classificação especial.
É possível criar grupos de parâmetros usando o console de Firebase ou a API REST de Remote Config. Cada grupo de parâmetros criado tem um nome exclusivo no modelo de Remote Config. Ao criar grupos de parâmetros, lembre-se:
- Os parâmetros podem ser incluídos em apenas um grupo por vez, e uma chave de parâmetro ainda precisa ser exclusiva em todos os parâmetros.
- Os nomes dos grupos de parâmetros são limitados a 256 caracteres.
- Se você usar a API REST e o console de Firebase, verifique se qualquer lógica da API REST está atualizada para lidar com grupos de parâmetros na publicação.
Criar ou modificar grupos de parâmetros usando o console de Firebase
É possível agrupar parâmetros na guia Parâmetros do console de Firebase. Para criar ou modificar um grupo:
- Selecione Gerenciar grupos.
- Marque as caixas de seleção dos parâmetros que você quer adicionar e selecione Mover para o grupo.
- Para selecionar um grupo atual ou criar um novo grupo, digite um nome e uma descrição e selecione Criar novo grupo. Depois de salvar um grupo, ele estará disponível para ser publicado usando o botão Publicar alterações.
Tipos de regra de condição
Os tipos de regras a seguir são compatíveis com o console de Firebase. Recursos equivalentes estão disponíveis na API REST de Remote Config, conforme detalhado na referência de expressão condicional.
Tipo de regra | Operadores | Valores | Observação |
App | == | Selecione em uma lista de IDs de apps associados ao seu projeto do Firebase. | Ao adicionar um app ao Firebase, insira um ID de pacote ou um
nome de pacote do Android que defina um atributo exposto como ID do app nas
regras de Remote Config.
Use o atributo desta maneira:
|
Versão do app |
Para valores de string: corresponde exatamente, contém, não contém, contém regex Para valores numéricos: <, <=, =, !=, >, >= |
Especifique as versões do seu app a serem segmentadas. Antes de usar essa regra, utilize uma regra de ID do app para selecionar um app Android/Apple associado ao seu projeto do Firebase. |
Para plataformas da Apple: use o CFBundleShortVersionString do app. Observação: verifique se o app Apple está usando a versão 6.24.0 ou mais recente do SDK do Firebase para plataformas da Apple, já que CFBundleShortVersionString não é enviado em versões anteriores. Saiba mais em Notas de lançamento. Para Android: use o versionName do app. As comparações de strings para essa regra diferenciam maiúsculas de minúsculas. Ao usar o operador corresponde exatamente, contém, não contém ou contém regex, é possível selecionar vários valores. Ao usar o operador contém regex, é possível criar expressões regulares no formato RE2. A expressão regular precisa corresponder à toda a string de versão de destino ou parte dela. Use as âncoras ^ e $ para corresponder ao começo, ao final ou a toda uma string de destino. |
Número da versão |
Para valores de string: corresponde exatamente, contém, não contém, expressão regular Para valores numéricos: =, ≠, >, ≥, <, ≤ |
Especifique os build(s) do app a serem segmentados. Antes de usar essa regra, utilize uma regra de ID do app para selecionar um app Apple ou Android associado ao seu projeto do Firebase. |
Esse operador está disponível apenas para apps Apple e Android. Ele corresponde ao CFBundleVersion para Apple e ao versionCode para Android. As comparações de strings para essa regra diferenciam maiúsculas de minúsculas. Ao usar o operador corresponde exatamente, contém, não contém ou contém regex, é possível selecionar vários valores. Ao usar o operador contém regex, é possível criar expressões regulares no RE2 (em inglês). A expressão regular precisa corresponder à toda a string de versão de destino ou parte dela. Use as âncoras ^ e $ para corresponder ao começo, ao final ou a toda uma string de destino. |
Plataforma | == | iOS Android Web |
|
Sistema operacional | == |
Especifique os sistemas operacionais a serem segmentados. Antes de usar essa regra, utilize uma regra de ID do app para selecionar um app da Web associado ao seu projeto do Firebase. |
Essa regra mudará para true em relação a uma determinada instância de app da Web se
o sistema operacional e a versão dele corresponderem a um valor de destino na lista especificada. |
Navegador | == |
Especifique os navegadores a serem segmentados. Antes de usar essa regra, utilize uma regra de ID do app para selecionar um app da Web associado ao seu projeto do Firebase. |
Essa regra vai mudar para true em relação a uma determinada instância de app da Web se
o navegador e a versão dele corresponderem a um valor de destino na lista especificada.
|
Categoria do dispositivo | é, não é | dispositivo móvel | Essa regra avalia se o dispositivo que acessa seu app da Web é um dispositivo móvel ou não (computador ou console). Esse tipo de regra só está disponível para apps da Web. |
Idiomas | está em | Selecione um ou mais idiomas. | Essa regra será avaliada como true para determinada instância de app se
a instância estiver instalada em um dispositivo que usa um dos idiomas listados.
|
País/região | está em | Selecione uma ou mais regiões ou países. | Essa regra será avaliada como true para determinada instância de app se a instância estiver em uma das regiões ou países listados. O código do país do dispositivo
é determinado por meio do 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).
|
Público(s)-alvo | Inclui pelo menos um | Selecione um ou mais públicos de Google Analytics em uma lista que você configurou para o projeto. | Esta regra requer uma regra de código de app para selecionar um app associado ao seu projeto do Firebase. Observação: como muitos públicos de Analytics são definidos por eventos ou propriedades de usuários que podem ter como base as ações de usuários do app, pode levar algum tempo para que uma regra Usuário no público afete determinada instância de app. |
Propriedade do usuário |
Para valores de string:
contém, não contém, corresponde exatamente, contém regex Para valores numéricos: =, ≠, >, ≥, <, ≤ Observação: no cliente, defina apenas valores de string para propriedades do usuário. Para condições que usam operadores numéricos, Remote Config converte o valor da propriedade do usuário correspondente em um inteiro/float. |
Faça uma seleção em uma lista de propriedades de usuário de Google Analytics disponíveis. | Para aprender a usar as propriedades de usuário para personalizar o app de acordo com
segmentos muito específicos da base de usuários, consulte
Remote Config e propriedades de usuário.
Para saber mais sobre as propriedades de usuário, consulte os seguintes guias: Ao usar o operador corresponde exatamente, contém, não contém ou contém regex, é possível selecionar vários valores. Ao usar o operador contém regex, é possível criar expressões regulares no RE2 (em inglês). A expressão regular precisa corresponder à toda a string de versão de destino ou parte dela. Use as âncoras ^ e $ para corresponder ao começo, ao final ou a toda uma string de destino. Observação: as propriedades de usuário coletadas automaticamente não estão disponíveis durante a criação de condições de Remote Config. |
Usuário na porcentagem aleatória | Controle deslizante (no Console do Firebase. A
API REST usa
os operadores <= , > e between ).
|
0 a 100 |
Use esse campo para aplicar uma alteração a uma amostra aleatória de instâncias de app (com tamanhos de amostra de 0,0001%), usando o widget de controle deslizante para segmentar usuários de maneira aleatória (instâncias de app) em grupos. Cada instância de app é associada de maneira permanente a um número aleatório inteiro ou fracionário, de acordo com uma semente definida no projeto. Uma regra vai usar a chave padrão (mostrada como Editar semente no console de Firebase), a menos que você modifique o valor de semente. Desmarque o campo Semente para fazer com que uma regra volte a usar a chave padrão. Para referenciar consistentemente as mesmas instâncias de app em determinados intervalos de porcentagem, use o mesmo valor de semente em todas as condições. Também é possível selecionar um novo grupo de instâncias de app atribuído aleatoriamente para um determinado intervalo de porcentagem especificando uma nova semente. Por exemplo, para criar duas condições relacionadas em que cada uma se aplica a 5% não sobrepostos dos usuários de um app, configure uma condição para corresponder a uma porcentagem entre 0% e 5% e outra para corresponder a um intervalo de 5% a 10%. Para permitir que alguns usuários apareçam de maneira aleatória nos dois grupos, use valores de semente diferentes para as regras em cada condição. |
Segmento importado | está em | Selecione um ou mais segmentos importados. | Essa regra requer a configuração de segmentos importados personalizados. |
Data/hora | Antes, Depois | Uma data e hora especificadas, no fuso horário do dispositivo ou em um fuso horário especificado, como "(GMT+11) horário de Sydney". | Compara a hora atual com o tempo de busca do dispositivo. |
Primeiro acesso | Antes, Depois | Uma data e hora especificadas no fuso horário definido. | Corresponde a usuários que abriram o app segmentado pela primeira vez no período especificado. Requer os seguintes SDKs:
|
ID de instalação | está em | Especifique um ou mais IDs de instalação (até 50) para segmentar. | Essa regra será avaliada como true para uma determinada instalação
se o ID dela estiver na lista de valores separados por vírgulas.
Para saber como conseguir os IDs de instalação, consulte Recuperar identificadores de cliente. |
O usuário existe | (sem operadores) | Segmenta todos os usuários de todos os apps no projeto atual. |
Use essa regra de condição para todos os usuários no projeto, independentemente do aplicativo ou da plataforma. |
Parâmetros e condições de pesquisa
Pesquise as chaves de parâmetro, os valores de parâmetro e as condições do projeto no console de Firebase usando a caixa de pesquisa na parte superior da guia Parâmetros de Remote Config.
Limites de parâmetros e condições
Dentro de um projeto do Firebase, você tem até 2.000 parâmetros e 500 condições. As chaves dos parâmetros podem ter até 256 caracteres e precisam começar com sublinhado ou uma letra (A-Z, a-z), além de incluir números. O tamanho total das strings dos valores de parâmetro não pode exceder 1.000.000 caracteres.
Conferir as mudanças nos parâmetros e nas condições
É possível conferir as mudanças mais recentes nos modelos de Remote Config no console de Firebase. Para cada parâmetro e condição individual, é possível:
Ver o nome do usuário que modificou o parâmetro ou a condição pela última vez.
Se a mudança ocorreu no mesmo dia, confira o número de minutos ou horas decorridos desde a publicação no modelo ativo de Remote Config.
Se a mudança ocorreu há um ou mais dias, confira a data em que ela foi publicada no modelo ativo de Remote Config.
Histórico de alterações de parâmetros
Na página Parâmetros de Remote Config, a coluna Última publicação mostra o último usuário que modificou cada parâmetro e a data da última publicação da mudança:
Para ver os metadados de mudança dos parâmetros agrupados, expanda o grupo de parâmetros.
Para classificar em ordem crescente ou decrescente por data de publicação, clique no rótulo da coluna Última publicação.
Histórico de alterações de condições
Na página Condições de Remote Config, é possível conferir o último usuário que modificou a condição e a data da modificação ao lado de Última modificação, abaixo de cada condição.