É 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
Quando você usa Remote Config em apps de servidor com Firebase Admin SDK, você busca e carrega o modelo inteiro para extrair os valores de parâmetro adequados sob demanda para cada solicitação dos clientes. Um parâmetro pode ter diversos valores condicionais associados.
Estas regras determinam qual valor é atribuído durante a avaliação do modelo 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 o modelo for avaliado. É 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 durante a avaliação do modelo. Se um parâmetro não existir no modelo ou o valor padrão estiver definido como Usar padrão no app, nenhum valor será fornecido para o parâmetro quando o modelo for avaliado.
Para saber como carregar e avaliar modelos de Remote Config em apps de servidor, consulte Usar Remote Config em ambientes de servidor.
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 modelos de Remote Config para aplicativos de servidor são compatíveis com os seguintes tipos de condição:
Usuário na porcentagem aleatória
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.
Para saber como adicionar condições de porcentagem aleatória ao app, consulte Configurar o app do servidor.
Indicadores personalizados
Com o SDK Admin do Node.js para Firebase 12.5.0 e mais recente, é possível usar o tipo de condição Indicador personalizado para a correspondência com condições arbitrárias definidas no app. Com isso, é possível personalizar a resposta do servidor para cada solicitação do cliente.
Por exemplo, ao trabalhar em um app de servidor que usa IA generativa para criar respostas com diferentes modelos ajustados para plataformas específicas, faça o seguinte:
- Adicione os parâmetros
prompt
emodel_name
ao modelo de servidor de Remote Config. - Adicione indicadores personalizados com um valor de
platform
para cada plataforma que você quer segmentar. - Adicione valores padrão ao modelo de Remote Config específico do servidor e valores condicionais para cada condição de plataforma definida.
- Atualize o código do aplicativo para definir e usar o indicador personalizado
platform
.
Agora, o app pode extrair o comando e o modelo adequados durante a avaliação do modelo e usá-los para retornar respostas personalizadas a cada cliente.
Você pode usar os seguintes tipos de regras para criar indicadores personalizados no console de Firebase.
Categoria de operador | Operadores | Valor | Observação |
---|---|---|---|
Texto | corresponde exatamente, contém, não contém, contém regex |
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 a parte dela. Use as âncoras ^ e $ para corresponder ao começo, ao final ou a toda uma string de destino. |
|
Números | <, <=, =, !=, >, >= | Número com no máximo dez dígitos de cada lado do ponto decimal. | |
Versões | <, <=, =, !=, >, >= | Número que representa os números de versão a serem correspondidos (por exemplo, 2.1.0). |
Para saber como adicionar indicadores personalizados ao app, consulte Configurar o app de servidor.
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.