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
Instale o SDK do Firebase para JavaScript e inicialize o Firebase, caso ainda não tenha feito isso.
Adicione o SDK da Configuração remota para JavaScript e inicialize a Configuração remota:
Web version 9
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 version 8
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.
Web version 9
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
Web version 8
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.
Web version 9
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
Web version 8
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
Depois de configurar os valores de parâmetros do back-end da Configuração remota, é possível fazer o download de um arquivo JSON gerado com todos os valores padrão e salvá-lo no pacote de 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;
Receber valores de parâmetro 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.
Web version 9
import { getValue } from "firebase/remote-config"; const val = getValue(remoteConfig, "welcome_messsage");
Web version 8
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.
- Abra seu projeto no Console do Firebase.
- Selecione Configuração remota no menu para ver o painel do recurso.
- 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
- 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. - 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:
Web version 9
import { fetchAndActivate } from "firebase/remote-config"; fetchAndActivate(remoteConfig) .then(() => { // ... }) .catch((err) => { // ... });
Web version 8
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:
- O parâmetro em
Settings.minimumFetchIntervalMillis
. - 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: