Introdução à Configuração remota do Firebase


Use o Configuração remota do Firebase para definir parâmetros no seu app e atualizar os valores na nuvem, permitindo modificar a aparência e o comportamento do app sem a necessidade de distribuir uma atualização. Este guia contém as etapas para começar a usar o recurso e alguns exemplos de código que estão disponíveis para clonagem ou download no repositório do GitHub firebase/quickstart-js.

Etapa 1: adicionar e inicializar o SDK da Configuração remota

  1. Instale o SDK do Firebase para JavaScript e inicialize o Firebase, caso ainda não tenha feito isso.

  2. Adicione o SDK da Configuração remota para JavaScript e inicialize a Configuração remota:

API modular da Web

import { initializeApp } from "firebase/app";
import { getRemoteConfig } from "firebase/remote-config";

// TODO: Replace the following with your app's Firebase project configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
};

// Initialize Firebase
const app = initializeApp(firebaseConfig);


// Initialize Remote Config and get a reference to the service
const remoteConfig = getRemoteConfig(app);

API com namespace da Web

import firebase from "firebase/compat/app";
import "firebase/compat/remote-config";

// TODO: Replace the following with your app's Firebase project configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
};

// Initialize Firebase
firebase.initializeApp(firebaseConfig);


// Initialize Remote Config and get a reference to the service
const remoteConfig = firebase.remoteConfig();

Esse objeto é usado para armazenar valores de parâmetros padrão no app, buscar valores de parâmetros atualizados do back-end da Configuração remota e controlar quando os valores buscados são disponibilizados ao app.

Etapa 2: definir o intervalo mínimo de busca

Durante o desenvolvimento, recomendamos definir um intervalo de busca mínimo relativamente baixo. Para mais informações, consulte Limitação.

API modular da Web

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

API com namespace da Web

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

Etapa 3: definir os valores de parâmetros padrão no app

É possível definir os valores de parâmetros padrão no app por meio do objeto do Configuração remota. Assim, o app se comporta de maneira previsível antes de se conectar ao back-end do Configuração remota e os valores padrão estarão disponíveis, caso nenhum tenha sido definido no back-end.

API modular da Web

remoteConfig.defaultConfig = {
  "welcome_message": "Welcome"
};

API com namespace da Web

remoteConfig.defaultConfig = {
  "welcome_message": "Welcome"
};

Depois de configurar os valores de parâmetro do back-end da Configuração remota, faça o download de um arquivo JSON gerado com todos os valores padrão e salve esse arquivo no pacote do app:

REST

curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=JSON -o remote_config_defaults.json

Console do Firebase

  1. Na guia Parâmetros, abra o Menu e selecione Fazer o download dos valores padrão.
  2. Quando for solicitado, ative a opção .json para a Web e clique em Fazer o download do arquivo.

Os exemplos a seguir mostram duas maneiras de importar e definir valores padrão no app. O primeiro exemplo usa fetch, que faz uma solicitação HTTP para o arquivo padrão incluído no pacote de app:


  const rcDefaultsFile = await fetch('remote_config_defaults.json');
  const rcDefaultsJson = await rcDefaultsFile.json();
  remoteConfig.defaultConfig = rcDefaultsJson;
  

O outro exemplo usa require, que compila os valores no seu app no tempo de compilação:

  let rcDefaults = require('./remote_config_defaults.json');
  remoteConfig.defaultConfig = rcDefaults;

Etapa 4: receber valores de parâmetros para uso no app

Agora você pode receber valores de parâmetro do objeto da Configuração remota. Se mais tarde você definir valores no back-end, buscá-los e ativá-los, eles vão estar disponíveis para o app. Para acessar esses valores, chame o método getValue(), fornecendo a chave de parâmetro como argumento.

API modular da Web

import { getValue } from "firebase/remote-config";

const val = getValue(remoteConfig, "welcome_messsage");

API com namespace da Web

const val = remoteConfig.getValue("welcome_messsage");

Etapa 5: definir valores de parâmetros

Usando o Console do Firebase ou as APIs de back-end da Configuração remota, você pode criar valores padrão do lado do servidor que substituem os valores no app conforme a lógica condicional ou a segmentação de usuário necessárias. Esta seção traz as etapas do Console do Firebase para criar esses valores.

  1. Abra seu projeto no Console do Firebase.
  2. Selecione Configuração remota no menu para explorar o painel do recurso.
  3. Defina os parâmetros com os mesmos nomes dos definidos no seu app. Para cada um, é possível definir um valor padrão (que, por fim, vai substituir o valor padrão no app) e valores condicionais. Saiba mais em Parâmetros e condições da Configuração remota.

Etapa 6: buscar e ativar os valores

  1. Para buscar os valores de parâmetro no back-end da Configuração remota, chame o método fetchConfig(). Todos os valores definidos no back-end são buscados e armazenados em cache no objeto da Configuração remota.
  2. Para disponibilizar esse valores de parâmetro recuperados ao aplicativo, chame o método activate().

Para casos em que você quer buscar e ativar valores em uma chamada, use fetchAndActivate() conforme mostrado neste exemplo:

API modular da Web

import { fetchAndActivate } from "firebase/remote-config";

fetchAndActivate(remoteConfig)
  .then(() => {
    // ...
  })
  .catch((err) => {
    // ...
  });

API com namespace da Web

remoteConfig.fetchAndActivate()
  .then(() => {
    // ...
  })
  .catch((err) => {
    // ...
  });

Esses valores de parâmetro atualizados afetam o comportamento e a aparência do app. Por isso, ative-os sem prejudicar a experiência do usuário, como da próxima vez que ele abrir o app. Confira informações e exemplos em Estratégias de carregamento da Configuração remota.

Limitação

Se um aplicativo fizer buscas muitas vezes em um período curto, essas chamadas de busca podem ser limitadas. Nesses casos, o SDK lança um erro FETCH_THROTTLE. Recomendamos que você reconheça esse erro e tente novamente no modo de espera exponencial, aguardando intervalos mais longos entre as solicitações de busca subsequentes.

Durante o desenvolvimento de apps, convém atualizar o cache com muita frequência (muitas vezes por hora) para permitir a iteração rápida à medida que você desenvolve e testa seu app. Para possibilitar a iteração rápida em um projeto com vários desenvolvedores, você pode adicionar temporariamente uma propriedade com um intervalo mínimo de busca baixo (Settings.minimumFetchIntervalMillis) no seu app.

O intervalo de busca de produção padrão e recomendado da Configuração remota é de 12 horas. Portanto, a busca pelas configurações no back-end não vai acontecer mais de uma vez em 12 horas, e isso independe de quantas chamadas de busca forem realmente realizadas. O intervalo mínimo de busca é determinado especificamente na seguinte ordem:

  1. O parâmetro em Settings.minimumFetchIntervalMillis.
  2. O valor padrão de 12 horas.

Próximas etapas

Se ainda não tiver feito isso, confira os casos de uso da Configuração remota, bem como alguns dos conceitos principais e a documentação de estratégias avançadas, que incluem: