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

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

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 :

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 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

  1. 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 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 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 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

  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 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 .

  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 em seu aplicativo:

Diagrama mostrando o fluxo descrito pelas listas ordenadas acima

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:

  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 .

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:

  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 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:
  • Para plataformas Apple: use o CFBundleIdentifier do aplicativo. Você pode encontrar o Bundle Identifier na guia General para o 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 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:

  • 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 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 .