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
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
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â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.
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â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.
Web
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
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
- 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 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
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
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.
- Abra seu projeto no Console do Firebase.
- Selecione Configuração remota no menu para explorar o painel do recurso.
- 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
- 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. - 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
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 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:
- 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 da Configuração remota, bem como alguns dos conceitos principais e a documentação de estratégias avançadas, que incluem: