Ir para o console

Modelos e controle de versão do Configuração remota

O modelo do Configuração remota é o conjunto do serviço dos parâmetros e condições formatados em JSON que você criou para seu projeto do Firebase. É possível modificar e gerenciar o modelo usando o Console do Firebase, que exibe o conteúdo do modelo em formato de gráfico nas guias Parâmetros e Condições. Se você estiver usando a API REST para modificar e gerenciar sua configuração, trabalhará diretamente com um arquivo de modelo como neste remote-config.json de exemplo:

{
  "parameters":[
    {
      "key":"welcome_message",
      "value_options":[
        {
          "value":"Welcome to this sample app"
        }
      ]
    },
    {
      "key":"welcome_message_caps",
      "value_options":[
        {
          "value":"false"
        }
      ]
    }
  ],
  "version":{
    "version_number": "42",
    "update_time":"2018-05-11T18:46:40Z",
    "update_user":{
      "name":"Jane Developer",
      "email":"jane@developer.org",
      "imageUrl":"http://image.google.com/path-to-profile-photo-for-jane"
    },
    "description":"Adding welcome messages",
    "origin":"CONSOLE",
    "update_type":"INCREMENTAL_UPDATE"
  }
}

Sempre que os parâmetros são atualizados, o Configuração remota cria um novo modelo com controle de versão e armazena o anterior como uma versão que você pode recuperar ou reverter conforme necessário. Os números de versão são aumentados sequencialmente a partir do valor inicial armazenado pelo Configuração remota. Todos os modelos incluem um campo version conforme mostrado. Ele contém metadados sobre essa versão específica.

Com o Console do Firebase ou a API REST, você pode executar as seguintes tarefas de gerenciamento de versão:

  • Listar todas as versões de modelos armazenadas.
  • Recuperar uma versão específica.
  • Reverter para uma versão específica.

Ao gerenciar os modelos do Configuração remota, não se esqueça do limite de expiração: 90 dias a partir do momento da criação ou um limite total de 300 versões armazenadas. Se você quiser armazenar ou reverter para um modelo que excede esses limites, salve-o e faça o armazenamento manualmente. O modelo ativo do Configuração remota em uso pelo app não expira. No entanto, se esse modelo estiver ativo por mais de 90 dias desde a criação e for substituído por uma atualização, ele não poderá ser recuperado novamente devido à expiração.

Gerenciar versões de modelos do Configuração remota com o Console do Firebase

O Console do Firebase apresenta uma interface gráfica para ativar versões de modelo de listagem, visualizar os detalhes e fazer reversões conforme necessário. Para executar essas tarefas, siga as etapas a seguir:

  1. Na guia Parâmetros, clique nos três pontos localizados no canto superior direito e selecione Ver histórico de alterações. Após clicar nesta opção, a página Histórico de alterações será exibida com todas as versões de modelo em um menu em lista.

  2. Por padrão, o painel de detalhes exibe o modelo ativo atualmente. Para ver detalhes de uma versão na lista, selecione-a no menu à direita.

  3. Quando você visualiza detalhes de uma versão armazenada no painel de detalhes, um botão com a opção de reverter para essa versão é exibido no canto superior direito da página. Clique e confirme essa opção apenas se tiver certeza de que você quer reverter para essa versão e usar esses valores imediatamente para todos os apps e usuários.

Gerenciar versões do modelo do Configuração remota com a API REST

Veja nesta seção como gerenciar versões do modelo do Configuração remota usando a API REST. Para mais detalhes sobre como criar, modificar e salvar modelos de maneira programática, consulte Como usar a API REST do Configuração remota.

Listar todas as versões armazenadas do modelo do Configuração remota

Com o método HTTP personalizado :listVersions, você pode recuperar uma lista de versões armazenadas do modelo do Configuração remota. Por exemplo:

curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id:listVersions

A resposta inclui metadados de todas as versões armazenadas, incluindo a hora da atualização, o usuário que as criou e se elas foram feitas por meio do console ou da API REST. Veja um exemplo de um elemento de versão:

{
  "versions": [{
    "version_number": "6",
    "update_time": "2018-05-12T02:38:54Z",
    "update_user": {
      "email": "jane@developer.org",
    },
    "description": "One small change on the console",
    "origin": "CONSOLE",
    "update_type": "INCREMENTAL_UPDATE"
  }]

Recuperar uma versão específica do modelo do Configuração remota

Ao incorporar o parâmetro de URL ?version_number, você recupera qualquer versão armazenada do modelo do Configuração remota. Por exemplo:

curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig?version_number=6

Este parâmetro é válido apenas para operações GET. Não é possível usá-lo para especificar números de versão para atualizações. Uma solicitação "get" parecida sem o parâmetro ?version_number recuperaria o modelo ativo atualmente, conforme descrito em Acessar JSON usando o serviço do Configuração remota.

Reverter para uma versão específica armazenada do modelo do Configuração remota

Se você quiser reverter para um modelo armazenado do Configuração remota, emita uma solicitação HTTP POST com o método personalizado :rollback e, no corpo da solicitação, a versão específica a ser aplicada. Por exemplo:

curl --compressed -D headers -H "Authorization: Bearer token" -X POST https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:rollback -d '{"version_number": 6}'

A resposta apresenta o conteúdo do modelo armazenado que está ativo atualmente com os novos metadados de versão.

Essa operação de reversão cria uma nova versão numerada com eficiência. Por exemplo, a reversão da versão 10 para a versão 6 cria com eficiência uma nova cópia da versão 6, que é diferente do original apenas porque o número de versão é 11. A versão 6 original ainda é armazenada, caso não tenha atingido a expiração, e a versão 11 se torna o modelo ativo.