Ao usar o Firebase console ou as APIs de back-end do Remote Config , você define um ou mais parâmetros (pares chave-valor) e fornece valores padrão no aplicativo para esses parâmetros. Você pode substituir os valores padrão no aplicativo definindo valores de parâmetro do lado do servidor. As chaves de parâmetro e os valores de parâmetro são strings, mas os valores de parâmetro podem ser convertidos como outros tipos de dados quando você usa esses valores em seu aplicativo.
Usando o Firebase console, Admin SDK ou Remote Config REST API , você pode criar novos valores padrão para seus parâmetros, bem como valores condicionais que são usados para segmentar grupos de instâncias de aplicativos. Cada vez que você atualiza sua configuração no console do Firebase, o Firebase cria e publica uma nova versão do seu modelo de configuração remota. A versão anterior é armazenada, permitindo que você recupere ou reverta conforme necessário. Essas operações estão disponíveis para você por meio do console do Firebase, do Firebase Admin SDK e da API REST e são descritas mais detalhadamente em Gerenciar versões de modelo do Remote Config .
Este guia explica parâmetros, condições, regras, valores condicionais e como vários valores de parâmetros são priorizados no Remote Config Server e em seu aplicativo. Ele também fornece detalhes sobre os tipos de regras usadas para criar condições.
Condições, regras e valores condicionais
Uma condição é usada para direcionar um grupo de instâncias de aplicativo. As condições são compostas por uma ou mais regras que devem ser avaliadas como true
para que a condição seja avaliada como true
para uma determinada instância do aplicativo. Se o valor de uma regra for indefinido (por exemplo, quando nenhum valor estiver disponível), essa regra será avaliada como false
.
Por exemplo, um parâmetro que define a página inicial de um aplicativo pode exibir imagens diferentes com base no tipo de sistema operacional usando a regra simples if device_os = Android
:
Ou uma condição de tempo pode ser usada para controlar quando seu aplicativo 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 dentro de um projeto. Na guia Parâmetros do console do Firebase, você pode ver 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 do valor do parâmetro
Um parâmetro pode ter vários valores condicionais associados a ele. As regras a seguir determinam qual valor é buscado no Remote Config Server e qual valor é usado em uma determinada instância do aplicativo em um determinado momento:
Os valores de parâmetro do lado do servidor são buscados de acordo com a seguinte lista de prioridades
Primeiro, os valores condicionais são aplicados, se houver condições avaliadas como
true
para uma determinada instância do aplicativo. Se várias condições forem avaliadas comotrue
, a primeira (superior) mostrada na IU do console do Firebase terá precedência, e os valores condicionais associados a essa condição serão fornecidos quando um aplicativo buscar valores no back-end. Você pode alterar a prioridade das condições arrastando e soltando as condições na guia Condições .Se não houver valores condicionais com condições avaliadas como
true
, o valor padrão do lado do servidor será fornecido quando um aplicativo buscar valores do back-end. Se um parâmetro não existir no back-end ou se o valor padrão for definido como Use in-app default , nenhum valor será fornecido para esse parâmetro quando um aplicativo buscar valores.
Em seu aplicativo, os valores de parâmetro são retornados por métodos get
de acordo com a seguinte lista de prioridades
- Se um valor foi buscado no back-end e ativado, o aplicativo usa o valor buscado. Os valores de parâmetro ativados são persistentes.
Se nenhum valor foi buscado no back-end, ou se os valores buscados no back-end do Remote Config não foram ativados, o aplicativo usa o valor padrão no aplicativo.
Para obter mais informações sobre como obter e definir valores padrão, consulte Baixar padrões de modelo do Remote Config .
Se nenhum valor padrão no aplicativo tiver sido definido, o aplicativo usará um valor de tipo estático (como
0
paraint
efalse
paraboolean
).
Este gráfico resume como os valores de parâmetro são priorizados no back-end do Configuração remota e em seu aplicativo:
Tipos de dados de valor de parâmetro
Configuração remota permite que você selecione um tipo de dados para cada parâmetro e valide todos os valores do lado do servidor 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 atualmente suportados são:
-
String
-
Boolean
-
Number
-
JSON
Na IU do Firebase console, o tipo de dados pode ser selecionado em uma lista suspensa ao lado da chave de parâmetro. Na API REST, os tipos podem ser definidos usando o campo value_type
no objeto de parâmetro.
Grupos de parâmetros
Configuração remota permite que você agrupe parâmetros para uma interface do usuário e um modelo mental mais organizados.
Por exemplo, digamos que você precise habilitar ou desabilitar três tipos de autenticação diferentes ao lançar um novo recurso de login. Com o Remote Config, você pode criar os três parâmetros para habilitar os tipos conforme desejado e depois organizá-los em um grupo denominado "Novo login", sem a necessidade de adicionar prefixos ou ordenações especiais.
Você pode criar grupos de parâmetros usando o Firebase console ou a API REST do Remote Config. Cada grupo de parâmetros que você cria tem um nome exclusivo em seu modelo de configuração remota. Ao criar grupos de parâmetros, lembre-se:
- Os parâmetros podem ser incluídos em apenas um grupo a qualquer momento, e uma chave de parâmetro ainda deve 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 Firebase console, certifique-se de que qualquer lógica da API REST seja atualizada para lidar com grupos de parâmetros na publicação.
Crie ou modifique grupos de parâmetros usando o Firebase console
Você pode agrupar parâmetros na guia Parâmetros do console do Firebase. Para criar ou modificar um grupo:
- Selecione Gerenciar grupos .
- Marque as caixas de seleção dos parâmetros que deseja adicionar e selecione Mover para o grupo .
- Selecione um grupo existente ou crie um novo grupo inserindo um nome e uma descrição e selecionando Criar novo grupo . Depois de salvar um grupo, ele fica disponível para publicação usando o botão Publicar alterações .
Criar grupos programaticamente
A API REST do Remote Config fornece uma maneira automatizada de criar e publicar grupos de parâmetros. Supondo que você esteja familiarizado com REST e configurado para autorizar solicitações para a API, você pode executar estas etapas para gerenciar grupos programaticamente:
- Recuperar o modelo atual
- Adicione objetos JSON para representar seus grupos de parâmetros
- Publique 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. Observe que cada chave de grupo deve ser globalmente exclusiva.
Por exemplo, aqui está 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 currently pumpkin spice season." } } } } }
Tipos de regra de condição
Os tipos de regra a seguir são compatíveis com o Firebase console. A funcionalidade equivalente está disponível na API REST do Remote Config, conforme detalhado na referência de expressão condicional .
Tipo de regra | Operador(es) | Valor(es) | Observação |
---|---|---|---|
Aplicativo | == | Selecione em uma lista de App IDs para aplicativos associados ao seu projeto do Firebase. | Ao adicionar um app ao Firebase, você insere um ID de pacote ou um nome de pacote Android que define um atributo que é exposto como App ID nas regras do Remote Config. Use este atributo da seguinte maneira:
|
Versão do aplicativo | Para valores de string: corresponde exatamente, contém, não contém, expressão regular Para valores numéricos: =, ≠, >, ≥, <, ≤ | Especifique a(s) versão(ões) do seu aplicativo para segmentar. Antes de usar esta regra, você deve usar uma regra de App ID para selecionar um aplicativo Android/Apple associado ao seu projeto Firebase. | Para plataformas Apple: use o CFBundleShortVersionString do aplicativo. Observação: certifique-se de que seu aplicativo Apple esteja usando o Firebase Apple Platform SDK versão 6.24.0 ou superior, pois CFBundleShortVersionString não está sendo enviado em versões anteriores (consulte as notas de lançamento ). Para Android: use o versionName do aplicativo. As comparações de strings para esta regra diferenciam maiúsculas de minúsculas. Ao usar correspondências exatas , contém , não contém ou expressão regular , você pode selecionar vários valores. Ao usar o operador de expressão regular , você pode criar expressões regulares no formato RE2 . Sua expressão regular pode corresponder a toda ou parte da string da versão de destino. Você também pode usar as âncoras ^ e $ para corresponder ao início, ao fim ou à totalidade de 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 o(s) build(s) do seu aplicativo para o destino. Antes de usar esta regra, você deve usar uma regra de App ID para selecionar um aplicativo Apple ou Android associado ao seu projeto Firebase. | Este operador está disponível apenas para aplicativos Apple e Android. Corresponde ao CFBundleVersion do aplicativo para Apple e versionCode para Android. As comparações de strings para esta regra diferenciam maiúsculas de minúsculas. Ao usar correspondências exatas , contém , não contém ou expressão regular , você pode selecionar vários valores. Ao usar o operador de expressão regular , você pode criar expressões regulares no formato RE2 . Sua expressão regular pode corresponder a toda ou parte da string da versão de destino. Você também pode usar as âncoras ^ e $ para corresponder ao início, ao fim ou à totalidade de uma string de destino. |
Plataforma | == | iOS Android Rede | |
Sistema operacional | == | Especifique o(s) sistema(s) operacional(is) de destino. Antes de usar esta regra, você deve usar uma regra de App ID para selecionar um aplicativo Web associado ao seu projeto Firebase. | Essa regra é avaliada como true para uma determinada instância de aplicativo da Web se o sistema operacional e sua versão corresponderem a um valor de destino na lista especificada. |
Navegador | == | Especifique o(s) navegador(es) a serem segmentados. Antes de usar esta regra, você deve usar uma regra de App ID para selecionar um aplicativo Web associado ao seu projeto Firebase. | Essa regra é avaliada como true para uma determinada instância de aplicativo da Web se o navegador e sua versão corresponderem a um valor de destino na lista especificada. |
Categoria do dispositivo | é não é | Móvel | Esta regra avalia se o dispositivo que acessa seu aplicativo da web é móvel ou não móvel (desktop ou console). Este tipo de regra está disponível apenas para aplicativos da web. |
línguas | é em | Selecione um ou mais idiomas. | Essa regra é avaliada como true para uma determinada instância do aplicativo se essa instância do aplicativo estiver instalada em um dispositivo que usa um dos idiomas listados. |
País/Região | é em | Selecione uma ou mais regiões ou países. | Essa regra é avaliada como true para uma determinada instância de aplicativo se a instância estiver em qualquer uma das regiões ou países listados. 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). |
Público(s) de usuários | Inclui pelo menos um | Selecione um ou mais de uma lista de públicos do Google Analytics que você configurou para seu projeto. | Esta regra requer uma regra de ID do aplicativo para selecionar um aplicativo associado ao seu projeto do Firebase. Observação: como muitos públicos do Analytics são definidos por eventos ou propriedades do usuário, que podem ser baseados nas ações dos usuários do aplicativo, pode levar algum tempo para que uma regra de usuário no público entre em vigor em uma determinada instância do aplicativo. |
propriedade do usuário | Para valores de string: contém, não contém, corresponde exatamente, expressão regular Para valores numéricos: =, ≠, >, ≥, <, ≤ Observação: no cliente, você pode definir apenas valores de string para propriedades do usuário. Para condições que usam operadores numéricos, o Remote Config converte o valor da propriedade do usuário correspondente em um número inteiro/flutuante. | Selecione em uma lista de propriedades de usuário do Google Analytics disponíveis. | Para saber como você pode usar as propriedades do usuário para personalizar seu aplicativo para segmentos muito específicos de sua base de usuários, consulte Configuração remota e propriedades do usuário . Para saber mais sobre as propriedades do usuário, consulte os seguintes guias: Ao usar correspondências exatas , contém , não contém ou operador de expressão regular , você pode selecionar vários valores. Ao usar o operador de expressão regular , você pode criar expressões regulares no formato RE2 . Sua expressão regular pode corresponder a toda ou parte da string da versão de destino. Você também pode usar as âncoras ^ e $ para corresponder ao início, ao fim ou à totalidade de uma string de destino. Observação: as propriedades do usuário coletadas automaticamente não estão disponíveis no momento ao criar as condições do Remote Config. |
Usuário em porcentagem aleatória | Controle deslizante (no console do Firebase. A API REST usa os operadores <= , > e between ). | 0-100 | Use este campo para aplicar uma alteração a uma amostra aleatória de instâncias de aplicativo (com tamanhos de amostra tão pequenos quanto 0,0001%), usando o widget deslizante para segmentar usuários aleatórios (instâncias de aplicativo) em grupos. Cada instância do aplicativo é mapeada persistentemente para um número inteiro ou fracionário aleatório, de acordo com uma semente definida naquele projeto. Uma regra usará a chave padrão (mostrada como Editar semente no console do Firebase), a menos que você modifique o valor da semente. Você pode retornar uma regra para usar a chave padrão limpando o campo Semente . Para abordar consistentemente as mesmas instâncias de aplicativo dentro de determinados intervalos percentuais, use o mesmo valor de semente em todas as condições. Ou selecione um novo grupo de instâncias de aplicativo atribuído aleatoriamente para um determinado intervalo de porcentagem especificando uma nova semente. Por exemplo, para criar duas condições relacionadas que se aplicam a 5% não sobrepostos dos usuários de um aplicativo, você pode configurar uma condição para corresponder a uma porcentagem entre 0% e 5% e configurar outra condição para corresponder a um intervalo entre 5% e 10%. Para permitir que alguns usuários apareçam aleatoriamente em ambos os grupos, use valores iniciais diferentes para as regras em cada condição. | segmento importado | é em | Selecione um ou mais segmentos importados. | Esta 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 a hora de busca do dispositivo. |
Primeiro aberto | Antes Depois | Uma data e hora especificadas, no fuso horário especificado. | Corresponde aos usuários que abrem o aplicativo de destino pela primeira vez dentro do intervalo de tempo especificado. Requer os seguintes SDKs:
|
ID de instalação | é em | Especifique um ou mais IDs de instalação (até 50) para segmentar. | Essa regra é avaliada como true para uma determinada instalação se o ID dessa instalação estiver na lista de valores separados por vírgula.Para saber como obter IDs de instalação, consulte Recuperar identificadores de cliente . |
Pesquisando parâmetros e condições
Você pode pesquisar as chaves de parâmetros, valores de parâmetros e condições do seu projeto no console do Firebase usando a caixa de pesquisa na parte superior da guia Parâmetros de configuração remota.
Limites de parâmetros e condições
Em um projeto do Firebase, você pode ter até 2.000 parâmetros e até 500 condições. As chaves de parâmetro podem ter até 256 caracteres, devem começar com um caractere de sublinhado ou letra do inglês (AZ, az) e também podem incluir números. O comprimento total das strings de valor de parâmetro em um projeto não pode exceder 1.000.000 de caracteres.
Como visualizar alterações nos parâmetros e condições
Você pode visualizar as alterações mais recentes em seus modelos de configuração remota no console do Firebase . Para cada parâmetro e condição individual, você pode:
Visualize o nome do usuário que modificou o parâmetro ou condição pela última vez.
Se a alteração ocorreu no mesmo dia, visualize o número de minutos ou horas decorridos desde que a alteração foi publicada no modelo de configuração remota ativo.
Se a alteração ocorreu um ou mais dias atrás, visualize a data em que a alteração foi publicada no modelo de configuração remota ativo.
Atualizações de parâmetros
Na página Parâmetros de configuração remota, a coluna Última publicação mostra o último usuário que modificou cada parâmetro e a última data de publicação da alteração:
Para exibir metadados de alteração para 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 Última coluna publicada .
Atualizações de condição
Na página Condições de configuração remota, você pode ver o último usuário que modificou a condição e a data em que a modificou ao lado de Última modificação abaixo de cada condição.
Próximos passos
Para começar a configurar seu projeto do Firebase, consulte Configurar um projeto de configuração remota do Firebase .