获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

Parâmetros e condições do Configuração remota

Ao usar o Firebase console 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â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 Console do Firebase, o SDK Admin ou a API REST do Configuração remota , você pode criar novos valores padrão para seus parâmetros, bem como valores condicionais usados ​​para segmentar grupos de instâncias de aplicativos. Sempre 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 que você recupere ou reverta conforme necessário. Essas operações estão disponíveis para você por meio do Console do Firebase, do SDK Admin do Firebase e da API REST e são descritas com mais detalhes em Gerenciar versões de 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 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 segmentar um grupo de instâncias do 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 SO 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 em 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 dos parâmetros do lado do servidor são buscados de acordo com a seguinte lista de prioridades

  1. Primeiro, os valores condicionais são aplicados, se houver condições que sejam 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 console do Firebase terá precedência, e os valores condicionais associados a essa condição serão fornecidos quando um aplicativo buscar valores do 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 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 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 ativado, o aplicativo usa o valor buscado. Os valores de parâmetro 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 foram ativados, o aplicativo usará o valor padrão no aplicativo.

    Para obter mais informações sobre como obter e definir valores padrão, consulte Fazer download dos padrões de 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 de parâmetro 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

O 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 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 console do Firebase, o tipo de dados pode ser selecionado em uma lista suspensa ao lado da chave do parâmetro. Na API REST os tipos podem ser configurados usando o campo value_type dentro do objeto de parâmetro.

Grupos de parâmetros

O Configuração remota permite agrupar parâmetros para obter 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 chamado "Novo login", sem a 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 que você cria tem um nome exclusivo em seu modelo do 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ê usa a API REST e o console do Firebase, certifique-se de que qualquer lógica da API REST seja 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 o 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 fica 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 esteja configurado para autorizar solicitações à API, você pode executar estas etapas para gerenciar grupos de forma programática:

  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 Firebase console. 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 para aplicativos associados ao seu projeto do Firebase. Ao adicionar um aplicativo ao Firebase, você insere um código de pacote ou um nome de pacote Android que define um atributo exposto como ID do aplicativo nas regras do Configuração remota.

Use este atributo da seguinte forma:
  • Para plataformas Apple: use o CFBundleIdentifier do aplicativo. Você pode encontrar o Identificador de pacote na guia Geral para o destino principal do seu aplicativo no Xcode.
  • Para Android: use o applicationId do aplicativo . Você pode encontrar o applicationId em seu 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 ID do aplicativo para selecionar um aplicativo Android/Apple associado ao seu projeto do Firebase.

Para plataformas Apple: use o CFBundleShortVersionString do aplicativo.

Observação: verifique se o aplicativo da Apple está 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 string para esta regra diferenciam maiúsculas de minúsculas. Ao usar o operador de expressão regular corresponde exatamente , contém , não contém , 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 compilação 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 a ser segmentado.

Antes de usar esta regra, você deve usar uma regra de ID do aplicativo 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 versionCode para Android. As comparações de string para esta regra diferenciam maiúsculas de minúsculas.

Ao usar o operador de expressão regular corresponde exatamente , contém , não contém , 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 ID do aplicativo para selecionar um aplicativo da Web associado ao seu projeto do Firebase.

Essa regra é 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 segmentados.

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

Essa regra é 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 da web é móvel ou não móvel (computador 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úblicos-alvo do usuário 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 App ID para selecionar um aplicativo associado ao seu projeto do Firebase.

Observação: como muitos públicos do Google Analytics são definidos por eventos ou propriedades do usuário, que podem se basear 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 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 string 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 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 o operador exatamente corresponde , 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 percentil aleatório <=, > 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 os operadores <= e > para segmentar usuários (instâncias de aplicativos) em grupos.

Cada instância do aplicativo é mapeada de forma persistente para um número inteiro ou fracionário aleatório, de acordo com uma chave definida nesse projeto. Uma regra usará a chave padrão (mostrada como DEF no Firebase console), a menos que você selecione ou crie outra chave. Você pode retornar uma regra para usar a chave padrão desmarcando o campo Randomizar usuários usando esta chave . Você pode usar uma única chave nas regras para abordar consistentemente as mesmas instâncias do aplicativo dentro de determinados intervalos de porcentagem. Ou você pode selecionar um novo grupo de instâncias de aplicativo atribuído aleatoriamente para um determinado intervalo de porcentagem criando uma nova chave.

Por exemplo, para criar duas condições relacionadas que se aplicam a 5% não sobrepostos dos usuários de um aplicativo, você pode ter uma condição que inclua uma regra <= 5% e outra condição inclua uma regra > 5% e uma regra <= regra de 10% . Para possibilitar que alguns usuários apareçam aleatoriamente em ambos os grupos, use chaves 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.
Código de instalação é em Especifique um ou mais IDs de instalação (até 50) para o destino. 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âmetro, os valores de parâmetro e as condições do seu projeto no Firebase console usando a caixa de pesquisa na parte superior da guia Parâmetros do 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 inglesa (AZ, az) e também podem incluir números. O comprimento total das cadeias de valores de parâmetro em um projeto não pode exceder 1.000.000 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 Firebase console . 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 do 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 os metadados de alteração de 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 última coluna publicada .

Atualizações de condição

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