Parâmetros e condições da configuração remota

Ao usar o Console do Firebase ou as APIs de back-end do Configuração remota , você define um ou mais parâmetros (pares de 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âmetros do lado do servidor. As chaves e os valores dos parâmetros são strings, mas os valores dos parâmetros podem ser convertidos como outros tipos de dados quando você usa esses valores no seu aplicativo.

Usando o Console do Firebase, o SDK Admin ou a API REST da Configuração remota , 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 do Configuração remota. A versão anterior é armazenada, permitindo recuperar ou reverter conforme necessário. Essas operações estão disponíveis por meio do Console do Firebase, do SDK Admin do Firebase e da API REST e são descritas mais detalhadamente em Gerenciar versões do modelo do Configuração remota .

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 no seu aplicativo. 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 aplicativos. As condições são compostas de 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 :

Captura de tela do parâmetro 'splash_page' no console do Firebase mostrando seu valor padrão para iOS e valor condicional para 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 visualizar a porcentagem de busca para os valores condicionais de cada parâmetro. Esta 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 servidor do Configuração remota e qual valor é usado em uma determinada instância do aplicativo em um determinado momento:

Os valores dos parâmetros do lado do servidor são obtidos de acordo com a seguinte lista de prioridades

  1. Primeiro, os valores condicionais são aplicados, se algum tiver condições avaliadas como true para uma determinada instância do aplicativo. Se várias condições forem avaliadas como true , a primeira (superior) mostrada na IU do Firebase console 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 .

  2. 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 no back-end. Se um parâmetro não existir no back-end ou se o valor padrão estiver definido como Use in-app default , nenhum valor será fornecido para esse parâmetro quando um aplicativo buscar valores.

No seu aplicativo, os valores dos parâmetros são retornados pelos métodos get de acordo com a seguinte lista de prioridades

  1. Se um valor foi buscado no back-end e depois ativado, o aplicativo usa o valor buscado. Os valores dos parâmetros ativados são persistentes.
  2. Se nenhum valor foi buscado no back-end ou se os valores buscados no back-end do Configuração remota não tiverem sido ativados, o aplicativo usará o valor padrão no aplicativo.

    Para obter mais informações sobre como obter e definir valores padrão, consulte Baixar padrões do modelo do Configuração remota .

  3. Se nenhum valor padrão no aplicativo tiver sido definido, o aplicativo usará um valor de tipo estático (como 0 para int e false para boolean ).

Este gráfico resume como os valores dos parâmetros são priorizados no back-end do Configuração remota e no seu aplicativo:

Diagrama mostrando o fluxo descrito pelas listas ordenadas acima

Tipos de dados de valor de parâmetro

A Configuração remota permite selecionar um tipo de dados para cada parâmetro e valida todos os valores do lado do servidor em relação a esse tipo antes de uma atualização do 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 console do Firebase, o tipo de dados pode ser selecionado em um menu suspenso próximo à chave do parâmetro. Na API REST, os tipos podem ser definidos usando o campo value_type dentro do objeto de parâmetro.

Grupos de parâmetros

A Configuração remota permite agrupar parâmetros para uma interface de usuário e um modelo mental mais organizados.

Por exemplo, digamos que você precise ativar ou desativar três tipos de autenticação diferentes ao implementar um novo recurso de login. Com a Configuração remota, você pode criar os três parâmetros para ativar os tipos conforme desejado e depois organizá-los em um grupo chamado "Novo login", sem necessidade de adicionar prefixos ou classificação especial.

Você pode criar grupos de parâmetros usando o Console do Firebase ou a API REST do Configuração remota. Cada grupo de parâmetros criado tem um nome exclusivo no modelo do Configuração remota. 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 deve ser exclusiva em todos os parâmetros.
  • Os nomes dos grupos de parâmetros estão limitados a 256 caracteres.
  • Se você usar a API REST e o console do Firebase, certifique-se de que qualquer lógica da API REST esteja atualizada para lidar com grupos de parâmetros na publicação.

Criar ou modificar grupos de parâmetros usando o Console do Firebase

Você pode agrupar parâmetros na guia Parâmetros do console do Firebase. Para criar ou modificar um grupo:

  1. Selecione Gerenciar grupos .
  2. Marque as caixas de seleção dos parâmetros que deseja adicionar e selecione Mover para grupo .
  3. 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 estará disponível para publicação usando o botão Publicar alterações .

Crie grupos programaticamente

A API REST do Configuração remota 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 à API, você pode executar estas etapas para gerenciar grupos programaticamente:

  1. Recuperar o modelo atual
  2. Adicione objetos JSON para representar seus grupos de parâmetros
  3. 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 regras de condição

Os seguintes tipos de regras são compatíveis com o Console do Firebase. A funcionalidade equivalente está disponível na API REST do Configuração remota, conforme detalhado na referência de expressão condicional .

Tipo de regra Operador(es) Valor(es) Observação
Aplicativo == Selecione em uma lista de IDs de aplicativos associados ao seu projeto do Firebase. Ao adicionar um aplicativo ao Firebase, você insere um ID de pacote ou nome de pacote Android que define um atributo exposto como ID do aplicativo nas regras do Configuração remota.

Use este atributo da seguinte maneira:
  • Para plataformas Apple: use o CFBundleIdentifier do aplicativo. Você pode encontrar o identificador de pacote na guia Geral do destino principal do seu aplicativo no Xcode.
  • Para Android: use o applicationId do aplicativo. Você pode encontrar o applicationId no arquivo build.gradle no nível do aplicativo.
Versão do aplicativo Para valores de string:
corresponde exatamente,
contém,
não contém,
expressão regular

Para valores numéricos:
=, ≠, >, ≥, <, ≤

Especifique as versões do seu aplicativo a serem segmentadas.

Antes de usar esta regra, você deve usar uma regra de App ID para selecionar um aplicativo Android/Apple associado ao seu projeto do Firebase.

Para plataformas Apple: use CFBundleShortVersionString do aplicativo.

Observação: certifique-se de que seu aplicativo Apple esteja usando o SDK das plataformas Firebase Apple 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 o operador correspondência exata , 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 as versões do seu aplicativo a serem direcionadas.

Antes de usar esta regra, você deve usar uma regra de App ID para selecionar um aplicativo Apple ou Android associado ao seu projeto do Firebase.

Este operador está disponível apenas para aplicativos Apple e Android. Corresponde ao CFBundleVersion do aplicativo para Apple e ao versionCode para Android. As comparações de strings para esta regra diferenciam maiúsculas de minúsculas.

Ao usar o operador correspondência exata , 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 os sistemas operacionais a serem direcionados.

Antes de usar esta regra, você deve usar uma regra de App ID para selecionar um aplicativo Web associado ao seu projeto do Firebase.

Esta regra será avaliada como true para uma determinada instância de aplicativo Web se o sistema operacional e sua versão corresponderem a um valor de destino na lista especificada.
Navegador ==

Especifique os navegadores a serem direcionados.

Antes de usar esta regra, você deve usar uma regra de App ID para selecionar um aplicativo Web associado ao seu projeto do Firebase.

Esta regra será avaliada como true para uma determinada instância de aplicativo 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 web é móvel ou não móvel (desktop ou console). Este tipo de regra está disponível apenas para aplicativos web.
línguas é em Selecione um ou mais idiomas. Esta regra será avaliada como true para uma determinada instância de aplicativo se essa instância de 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. Esta regra será 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 públicos-alvo do Google Analytics que você configurou para seu projeto.

Esta regra requer uma regra de App ID 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 Usuário no público entre em vigor para 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:
=, ≠, >, ≥, <, ≤

Nota: No cliente, você pode definir apenas valores de sequência para propriedades do usuário. Para condições que usam operadores numéricos, o Configuração remota converte o valor da propriedade do usuário correspondente em um número inteiro/flutuante.
Selecione em uma lista de propriedades de usuário disponíveis do Google Analytics. Para saber como usar as propriedades do usuário para personalizar seu aplicativo para segmentos muito específicos da sua base de usuários, consulte Configuração remota e propriedades do usuário .

Para saber mais sobre propriedades do usuário, consulte os seguintes guias:

Ao usar o operador corresponde exatamente , 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.

Observação: as propriedades do usuário coletadas automaticamente não estão disponíveis no momento ao criar condições do Configuração remota.
Usuário em porcentagem aleatória Slider (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 aplicativos (com tamanhos de amostra tão pequenos quanto 0,0001%), usando o widget de controle deslizante para segmentar usuários embaralhados aleatoriamente (instâncias de aplicativos) 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 nesse projeto.

Uma regra usará a chave padrão (mostrada como Editar valor inicial no console do Firebase), a menos que você modifique o valor inicial. Você pode retornar uma regra usando 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 inicial 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, cada uma aplicável 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 dentro de 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 abriram o aplicativo de destino pela primeira vez dentro do intervalo de tempo especificado.

Requer os seguintes SDKs:

  • SDK do Firebase para Google Analytics
  • Plataformas Apple SDK v9.0.0+ ou Android SDK v21.1.1+ (Firebase BoM v30.3.0+)

ID de instalação é em Especifique um ou mais IDs de instalação (até 50) para direcionar. Esta regra será 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 .
O usuário existe (sem operador) Destina-se a todos os usuários de todos os aplicativos do projeto atual.

Use esta regra de condição para corresponder todos os usuários do projeto, independentemente do aplicativo ou da plataforma.

Pesquisando parâmetros e condições

Você pode pesquisar as chaves de parâmetro, os valores de parâmetro e as 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 sublinhado ou uma letra inglesa (AZ, az) e também podem incluir números. O comprimento total das sequências de valores de parâmetros em um projeto não pode exceder 1.000.000 de caracteres.

Visualizando alterações em parâmetros e condições

Você pode ver as alterações mais recentes nos modelos do 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, veja o número de minutos ou horas decorridos desde que a alteração foi publicada no modelo ativo do Configuração remota.

  • Se a alteração ocorreu há um ou mais dias, veja a data em que a alteração foi publicada no modelo ativo do Configuração remota.

Atualizações de parâmetros

Na página Parâmetros da 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 visualizar 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 da coluna Última publicação .

Atualizações de condição

Na página Condições da 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 do Firebase Remote Config .