Use Firebase Remote Config para definir parâmetros no app e atualizar os respectivos valores na nuvem. Assim, você modifica a aparência e o comportamento do app sem precisar distribuir uma atualização. Confira neste guia noções básicas e 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 de Remote Config
Instale o SDK do Firebase para JavaScript e inicialize o Firebase, caso ainda não tenha feito isso.
Adicione o SDK do Remote Config para JavaScript e inicialize o Remote Config:
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);
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âmetro padrão no app, buscar valores de parâmetro atualizados no back-end de Remote Config e controlar quando eles 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.
Web
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
Web
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
Etapa 3: definir os valores de parâmetros padrão no app
É possível definir os valores de parâmetro padrão no app por meio do objeto de Remote Config. Assim, o app se comporta de maneira previsível antes de se conectar ao back-end de Remote Config e os valores padrão ficam disponíveis, caso nenhum tenha sido definido no back-end.
Web
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
Web
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
Depois de configurar os valores de parâmetro do back-end de Remote Config, 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
- Na guia Parâmetros, abra o Menu e selecione Fazer o download dos valores padrão.
- 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 de Remote Config. Se posteriormente você definir
valores no back-end, buscá-los e ativá-los, eles estarão disponíveis para o app.
Para acessar esses valores, chame o método
getValue()
,
fornecendo a chave de parâmetro como um argumento.
Web
import { getValue } from "firebase/remote-config"; const val = getValue(remoteConfig, "welcome_messsage");
Web
const val = remoteConfig.getValue("welcome_messsage");
Etapa 5: definir valores de parâmetros
Com o console de Firebase ou as APIs de back-end de Remote Config, é possível criar valores padrão do lado do servidor que substituem os valores no app de acordo com a lógica condicional ou a segmentação de usuário pretendidas. Nesta seção, confira as etapas a serem seguidas no console de Firebase para criar esses valores.
- Abra o projeto no console de Firebase.
- Selecione Remote Config no menu para acessar o painel de Remote Config.
- Defina os parâmetros com os mesmos nomes dos definidos no seu app. Para cada um, é possível definir um valor padrão (que possivelmente substituirá o valor padrão no app) e também valores condicionais. Saiba mais em Parâmetros e condições de Remote Config.
Etapa 6: buscar e ativar os valores
- Para buscar os valores de parâmetro do back-end de Remote Config, chame o
método
fetchConfig()
. Todos os valores definidos no back-end são buscados e armazenados em cache no objeto de Remote Config. - Para disponibilizar valores de parâmetro buscados ao seu app, chame o método
activate()
.
Para casos em que você quer buscar e ativar valores em uma chamada, use fetchAndActivate()
conforme mostrado neste exemplo:
Web
import { fetchAndActivate } from "firebase/remote-config"; fetchAndActivate(remoteConfig) .then(() => { // ... }) .catch((err) => { // ... });
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 para Remote Config é 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:
- O parâmetro em
Settings.minimumFetchIntervalMillis
. - O valor padrão de 12 horas.
Próximas etapas
Se ainda não tiver feito isso, confira os casos de uso de Remote Config, bem como alguns dos principais conceitos e a documentação de estratégias avançadas, que incluem: