Check out what’s new from Firebase at Google I/O 2022. Learn more

Primeiros passos com a Configuração remota do Firebase

Use a Configuração remota do Firebase para definir parâmetros no app e atualizar os valores na nuvem. Dessa forma, é possível modificar a aparência e o comportamento do seu app sem distribuir uma atualização dele. Veja neste guia as etapas para os primeiros passos e exemplo de código, que estão disponíveis para clonagem ou download no repositório GitHub firebase/quickstart-js.

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:

Versão 9 para a 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);

Versão 8 para a Web

import firebase from "firebase/app";
import "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
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.

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

Versão 9 para a Web

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

Versão 8 para a Web

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

Definir valores de parâmetros padrão no app

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

Versão 9 para a Web

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

Versão 8 para a Web

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

Receber valores de parâmetros para uso no app

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

Versão 9 para a Web

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

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

Versão 8 para a Web

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

Definir os valores de parâmetro

Usando o Console do Firebase ou as APIs de back-end do recurso Configuração remota, é possível criar novos valores padrão do lado do servidor que substituem os valores no app de acordo com a lógica condicional ou a segmentação por usuário desejadas. Veja nesta seção 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 ver o painel do recurso.
  3. Defina os parâmetros com os mesmos nomes dos definidos no seu app. Para cada um, é possível determinar um valor padrão (que possivelmente substituirá o valor padrão no app), além de valores condicionais. Para saber mais, consulte Parâmetros e condições do recurso Configuração remota.

Buscar e ativar valores

  1. Para recuperar os valores de parâmetros usando o back-end da Configuração remota, chame o método fetchConfig(). Todos os valores definidos no back-end são obtidos e armazenados em cache no objeto 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:

Versão 9 para a Web

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

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

Versão 8 para a Web

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

Como esses valores de parâmetro atualizados afetam o comportamento e a aparência do app, ative-os quando isso não prejudicar a experiência do usuário. Por exemplo, na próxima vez em que ele abrir o app. Consulte Estratégias de carregamento da Configuração remota para mais informações e exemplos.

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ê veja 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 aplicativo.

O intervalo de busca de produção padrão e recomendado para o recurso Configuração remota é de 12 horas, o que significa que a busca pelas configurações no back-end não acontecerá mais de uma vez em um período de 12 horas, independentemente 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, veja os casos de uso do recurso Configuração remota e analise alguns dos principais conceitos e documentação de estratégias avançadas, incluindo: