| Selecione o tipo de modelo: | Modelos de cliente Modelos de servidor |
É possível disponibilizar parâmetros e valores de Remote Config de modelos de clientes para qualquer instância de app que implemente os SDKs de cliente do Firebase para Remote Config, incluindo apps Apple, Android, Web, Flutter, Unity e C++.
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 os valores padrão no app definindo valores de parâmetros. As chaves e os valores de parâmetros são strings, mas os valores podem ser transmitidos como outros tipos de dados quando você os usa no 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 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, um parâmetro que define a
página inicial de um app pode exibir imagens diferentes com base no tipo de SO usando a
regra if device_os = Android:

Como opção, uma condição de tempo pode ser usada para controlar quando seu app exibe itens promocionais especiais.
Um parâmetro pode ter vários valores condicionais que usam condições diferentes, e os parâmetros podem compartilhar condições em um projeto. No console do Firebase, acesse a página DevOps e engajamento > Configuração remota > Parâmetros para 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.
Adicionar, editar, reordenar ou excluir condições usando o console Firebase
É possível criar, editar, reordenar e excluir condições de segmentação no console do Firebase. As condições são compartilhadas entre parâmetros em um projeto. Veja como gerenciar condições:
- No console do Firebase, acesse DevOps e engajamento > Configuração remota > página Condições (ou selecione Gerenciar condições na página Parâmetros).
- Adicionar uma condição: clique em Adicionar condição (ou Criar sua primeira condição), insira um nome que defina o objetivo de segmentação e selecione uma ou mais regras de segmentação.
- Editar uma condição: clique no nome da condição ou no ícone de edição, modifique as regras conforme necessário e clique em Salvar.
- Mudar a prioridade da condição: na página Condições, arraste as condições pela alça para reordená-las. As condições mais altas na lista têm precedência sobre as mais baixas.
- Excluir uma condição: clique no ícone de exclusão ao lado da condição que você quer remover. Se a condição for referenciada por algum parâmetro, a remoção dela também vai remover os valores condicionais associados.
Depois de salvar as mudanças na condição, publique o modelo usando Publicar alterações.
Limitação do IPv6 com controle de acesso baseado em IP
O Remote Config tem compatibilidade limitada com IPv6 quando usado com políticas de acesso baseadas em IP. Se a organização restringir o acesso a intervalos de IP público específicos, a conexão por uma rede IPv6 poderá causar os seguintes problemas:
- Acesso ao console: talvez não seja possível usar determinados recursos do Remote Config no console Firebase, como carregar dados ou configurar o direcionamento.
- Acesso do cliente: os apps cliente podem encontrar erros PERMISSION_DENIED.
Para evitar esses problemas, configure sua rede para usar IPv4 ou adicione os intervalos de IP necessários do Firebase à lista de permissões da sua organização.
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
truepara uma determinada solicitação de cliente. Se várias condições forem avaliadas comotrue, a condição 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 mudar a prioridade das condições ao arrastá-las e soltá-las na página 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
0paraintefalseparaboolean).
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:
StringBooleanNumberJSON
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 do seguinte:
- 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 no console do Firebase. Veja como criar ou modificar um grupo:
- No console do Firebase, acesse a página DevOps e engajamento > Configuração remota > Parâmetros.
- 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.
Criar grupos de maneira programática
A API REST Remote Config oferece uma maneira automatizada de criar e publicar grupos de parâmetros. Supondo que você esteja familiarizado com o REST e pronto para autorizar solicitações à API, execute estas etapas para gerenciar grupos de maneira programática:
- Recuperar o modelo atual.
- Adicione objetos JSON para representar seus grupos de parâmetros.
- Publicar os grupos de parâmetros usando uma solicitação HTTP PUT.
O objeto parameterGroups contém chaves de grupo, com uma descrição aninhada e uma lista de parâmetros agrupados. Cada chave de grupo precisa ser globalmente exclusiva.
Por exemplo, veja um trecho de uma revisão de modelo que adiciona o grupo de parâmetros "novo menu" com um parâmetro, pumpkin_spice_season:
{
"parameters": {},
"version": {
"versionNumber": "1",
…
},
"parameterGroups": {
"new menu": {
"description": "New Menu",
"parameters": {
"pumpkin_spice_season": {
"defaultValue": {
"value": "true"
},
"description": "Whether it's pumpkin spice season."
}
}
}
}
}Condições de indicadores personalizados
Os valores condicionais de indicadores personalizados podem ser usados para corresponder a indicadores arbitrários que você define e envia no aplicativo com condições criadas com base nos indicadores em Remote Config. Isso permite personalizar as experiências do app ou do lado do cliente.
As condições de indicador personalizados estão disponíveis para os seguintes ambientes de cliente:
- iOS: v11.8.0 ou mais recente
- Android: v22.1.0 ou mais recente (BoM do Firebase v33.8.0 ou mais recente)
- Web: v11.2.0 ou mais recente
- Flutter: BoM do Flutter versão 3.6.0 ou mais recente
Por exemplo, suponha que você esteja trabalhando em um app de venda de ingressos em que queira exibir um banner na tela inicial. É possível usar condições de indicador personalizado do lado do cliente para personalizar esses banners com base no local e nos interesses do usuário. Você pode fazer o seguinte:
- Adicione
banner_image_urlebanner_linkao modelo de cliente Remote Config. Eles representam a imagem do banner e a página do evento associada a essa imagem. - Defina indicadores personalizados do app com os valores
cityepreferred_event_category. - Adicione valores padrão ao modelo de Remote Config específico do cliente e crie valores condicionais com base nos indicadores personalizados definidos na etapa anterior.
- Adicione valores padrão ao modelo de Remote Config específico do cliente e valores condicionais para cada condição definida.
- Atualize o código do aplicativo para definir e usar o indicador personalizado.
Agora, o app pode fazer o download do banner_image_url e do banner_link
adequados quando buscar esses parâmetros do servidor Remote Config.
Limites
Ao criar condições de indicador personalizados, você precisa seguir os seguintes limites:
- Número de indicadores personalizados: é possível criar até 100 indicadores personalizados por instância de app. Para remover um indicador personalizado, defina o valor dele como nulo.
- Nome do indicador personalizado: cada nome de indicador personalizado pode ter no máximo 250 caracteres.
- Valor de indicador personalizado: cada valor de indicador personalizado pode ter até 500 caracteres. Ao usar expressões regulares, o limite é de 250 caracteres.
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 expressão regular 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. Observação:os operadores de comparação numérica ( 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 expressão regular, é possível selecionar vários valores. Ao usar o operador contém expressão regular, é 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 expressão regular, é possível selecionar vários valores. Ao usar o operador contém expressão regular, é 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. |
| 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-alvo do 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-alvo tenha efeito em determinada instância do app. Isso significa que, mesmo que um usuário se qualifique tecnicamente para um público-alvo,
se o Analytics ainda não o tiver adicionado ao público quando
o |
| Propriedade do usuário |
Para valores de string:
contém, não contém, corresponde exatamente, contém expressão regular 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 expressão regular, é possível selecionar vários valores. Ao usar o operador contém expressão regular, é 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. 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 | Segmente usuários com base no primeiro acesso deles ao app:
|
A segmentação de usuários por primeiro acesso fica disponível depois que você seleciona um app Android, iOS ou da Web. Requer os seguintes SDKs:
O Analytics também precisa estar ativado no cliente durante o evento de primeiro acesso. |
| 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. |
| Indicador personalizado |
Para valores de string:
contém, não contém, corresponde exatamente, contém expressão regular Para valores numéricos: =, ≠, >, ≥, <, ≤ Para valores de versão: =, ≠, >, ≥, <, ≤ |
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 expressão regular, é possível selecionar vários valores. Ao usar o operador "contém expressão regular", é 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. Os seguintes tipos de dados são compatíveis com ambientes de cliente:
Número que representa os números de versão a serem correspondidos (por exemplo, 2.1.0). |
Para mais informações sobre as condições de indicador personalizados e as expressões condicionais a serem usadas, consulte Condições de indicador personalizado e Elementos usados para criar condições. |
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 página DevOps e engajamento > Configuração remota > Parâmetros.
Limites de parâmetros e condições
Dentro de um projeto do Firebase, você tem até 3.000 parâmetros e 2.000 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. Além disso, as regras de condição baseadas em propriedades do usuário podem incluir até 100 valores de propriedade do usuário. Para acessar uma lista completa de limites, consulte Cotas e limites.
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
No console do Firebase, acesse a página DevOps e engajamento > Configuração remota > Parâmetros. 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
No console do Firebase, acesse DevOps e engajamento > Configuração remota > página Condições. É 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.
Próximas etapas
Para configurar o projeto do Firebase e o app para usar Remote Config, consulte Introdução ao Firebase Remote Config.