Ir para o console

Visão geral da API Firebase Remote Config

O Configuração remota do Firebase tem APIs que facilitam a alteração de comportamento e de aparência do seu app sem exigir que os usuários façam o download de uma atualização dele. Esta visão geral descreve os itens a seguir:

  • os principais recursos das Remote Config APIs
  • a arquitetura de API e a biblioteca do Configuração remota

Para saber mais sobre o Configuração remota, veja Introdução ao Configuração remota.

Principais recursos das APIs do Configuração remota

As APIs do Configuração remota implementam estes recursos:

  • Seu app controla quando novos valores de parâmetros são aplicados. Como as alterações de valor de parâmetro afetam o comportamento e a aparência do seu app, o projeto da API implementa um só objeto que busca os valores em segundo plano, armazena-os localmente e permite que seu app os ative no momento certo.
  • Valores de parâmetro padrão dentro do app. Defina os valores padrão dentro do app para todos os parâmetros do Configuração remota no seu app. Esses valores são disponibilizados imediatamente para o app, mesmo se um dispositivo não estiver conectado. Você recebe valores buscados e ativados usando os mesmos métodos que usou para receber os valores padrão dentro do app.
  • Buscar e aplicar valores é eficiente. Buscar e ativar valores do serviço Configuração remota é eficiente e pode ser feito de maneira segura e recorrente. Por isso, não é necessário adicionar lógica ao app que detecta um retorno de chamada ou que determina se é seguro ativar os valores buscados. Na realidade, é possível seu app para que ele envie uma solicitação para buscar valores de parâmetro e ative os valores de parâmetro buscados anteriormente toda vez que um usuário iniciar seu app ou até com maior frequência. Caso nenhum valor buscado e ativado esteja disponível, seu app usará os valores padrão dentro dele com um impacto insignificante no desempenho causado pela solicitação de busca ou pela chamada de activate().

Biblioteca do Configuração remota

A base da arquitetura da API do Configuração remota é a biblioteca dele. A biblioteca do Configuração remota implementa uma só classe: FIRRemoteConfig para iOS e FirebaseRemoteConfig para Android. Use o objeto do Configuração remota para realizar estas ações:

  • Definir valores padrão. Você não precisa gerenciar nem criar parâmetros no serviço do Configuração remota para seu app funcionar conforme planejado. Equipe seu app com quantos parâmetros do Configuração remota você precisar e crie valores padrão dentro do app. Depois, você pode modificar os parâmetros do seu app ao criar parâmetros no serviço Configuração remota.
  • Buscar, armazenar e gerenciar valores de parâmetro. Há três tipos de armazenamento de valores de parâmetro no objeto do Configuração remota: Configuração padrão, que armazena valores padrão no aplicativo, Configuração ativa, que armazena valores disponíveis no aplicativo usando métodos get e Configuração de busca, que armazena os valores buscados mais recentemente do servidor do Configuração remota.
  • Ativar a Configuração de busca, que atualiza a Configuração ativa Quando a Configuração de busca é ativada, os valores de parâmetro nela são copiados na Configuração ativa. Isso disponibiliza os valores buscados recentemente para seu app.

Arquitetura da API

O diagrama a seguir mostra como seu app interage com o Configuração remota.

A tabela a seguir contém detalhes adicionais sobre as interações entre seu app e a biblioteca do Configuração remota.

Métodos e propriedades Observações
Métodos de objeto "get" do Configuração remota:

   iOS: remoteConfig
   Android: getInstance()

Etapa 1: seu app chama esses métodos para criar o objeto do Configuração remota ou buscá-lo no armazenamento permanente. Se o objeto foi criado recentemente, a Configuração de busca, a Configuração ativa e a Configuração padrão estão "vazias" inicialmente e não contêm valores de parâmetro.

Observação: se você testar seu app para Android usando o StrictMode, a leitura da chamada getInstance() inicial durante a criação do app será feita em um arquivo local. Para evitar erros de leitura de disco de StrictMode, essa chamada inicial não deve ser feita na thread de IU. Todas as chamadas getInstance() subsequentes estão seguras na thread de IU porque elas são lidas somente na memória. Nunca deixe o StrictMode ativado em apps distribuídos no Google Play.

Métodos "set" da Configuração padrão:

   iOS: setDefaults():
   Android: setDefaultsAsync()
Etapa 2: seu app chama esses métodos para definir valores na Configuração padrão. Caso seu app tente receber um valor de um novo objeto do Configuração remota antes que esse valor exista na Configuração ativa, será retornado o valor da Configuração padrão.
Métodos "fetch":

   iOS:
   fetchWithCompletionHandler:,
   fetchWithExpirationDuration:completionHandler:
   Android: fetch()
O app usa esses métodos para iniciar uma chamada para o servidor do Configuração remota e receber valores de parâmetro recentes que são armazenados na Configuração de busca.

Observação: os métodos de busca não têm um efeito imediato no comportamento ou na aparência do app.
Métodos "activate":

   iOS: activateFetched()
   Android: activate()
O app ativa a Configuração de busca que copia valores armazenados nela para a Configuração ativa.
Métodos "Get<type>":

   iOS: configValueForKey:
   Android: getLong(), getString() etc.
O app chama esses métodos para receber valores de parâmetro da Configuração ativa.
Métodos "config settings":

   iOS: initWithDeveloperModeEnabled:
   Android: setConfigSettingsAsync()
Usados para configurações personalizadas. No momento, são usados para configurações que permitem que os desenvolvedores atualizem os dados do app mais rapidamente do que é permitido para apps de produção e para definir um tempo limite de busca (quanto tempo o SDK aguarda a resposta do servidor antes de desistir). Para saber mais, consulte cache do iOS e limitação no Android.
Métodos e propriedades de informação:

   iOS: lastFetchStatus, allKeysWithPrefix:
   Android: getConfigSettings(), getLastFetchStatus(), getKeysByPrefix().
O app usa esses métodos para receber informações sobre o objeto do Configuração remota. Utilize esses métodos para depuração durante o desenvolvimento do aplicativo.

Para saber mais sobre as APIs do Configuração remota, consulte:

Para começar a integrar o Configuração remota ao seu aplicativo, consulte Usar o Configuração remota no iOS e Usar o Configuração remota no Android.