Você pode usar o Firebase Remote Config para definir parâmetros no seu aplicativo e atualizar seus valores na nuvem, permitindo modificar a aparência e o comportamento do seu aplicativo sem distribuir uma atualização do aplicativo. Este guia orienta você nas etapas de introdução e fornece alguns exemplos de código.
Etapa 1: adicionar o Firebase e o SDK da Configuração remota ao seu aplicativo
Instale e inicialize os SDKs do Firebase para Flutter , caso ainda não tenha feito isso.
Para a Configuração remota, o Google Analytics é necessário para a segmentação condicional de instâncias de aplicativos para propriedades de usuários e públicos-alvo. Certifique-se de ativar o Google Analytics em seu projeto.
No diretório raiz do seu projeto Flutter, execute o seguinte comando para instalar o plug-in do Configuração remota:
flutter pub add firebase_remote_config
Além disso, como parte da configuração do Configuração remota, você precisa adicionar o SDK do Firebase para Google Analytics ao seu aplicativo:
flutter pub add firebase_analytics
Reconstrua seu projeto:
flutter run
Se você estiver usando a Configuração remota no macOS, ative o compartilhamento de chaves no Xcode.
Etapa 2: obter o objeto singleton do Configuração remota
Obtenha uma instância do objeto do Configuração remota e defina o intervalo mínimo de busca para permitir atualizações frequentes:
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(hours: 1),
));
O objeto singleton é usado para armazenar valores de parâmetros padrão no aplicativo, buscar valores de parâmetros atualizados do back-end e controlar quando os valores buscados são disponibilizados para seu aplicativo.
Durante o desenvolvimento, é recomendado definir um intervalo mínimo de busca relativamente baixo. Consulte Limitação para obter mais informações.
Etapa 3: definir valores de parâmetros padrão no aplicativo
Você pode definir valores de parâmetros padrão no aplicativo no objeto do Configuração remota, para que seu aplicativo se comporte conforme esperado antes de se conectar ao back-end do Configuração remota e para que os valores padrão estejam disponíveis se nenhum for definido no back-end.
await remoteConfig.setDefaults(const {
"example_param_1": 42,
"example_param_2": 3.14159,
"example_param_3": true,
"example_param_4": "Hello, world!",
});
Etapa 4: obtenha valores de parâmetros para usar em seu aplicativo
Agora você pode obter valores de parâmetros do objeto do Configuração remota. Se você definir valores no back-end, buscá-los e ativá-los, esses valores estarão disponíveis para seu aplicativo. Caso contrário, você obterá os valores dos parâmetros no aplicativo configurados usando setDefaults()
.
Para obter esses valores, chame o método listado abaixo que mapeia o tipo de dados esperado pelo seu aplicativo, fornecendo a chave do parâmetro como argumento:
-
getBool()
-
getDouble()
-
getInt()
-
getString()
Etapa 5: definir valores de parâmetros no back-end do Configuração remota
Usando o console do Firebase ou as APIs de back-end do Configuração remota , você pode criar novos valores padrão no servidor que substituem os valores no aplicativo de acordo com a lógica condicional desejada ou a segmentação do usuário. Esta seção descreve as etapas do Firebase Console para criar esses valores.
- No console do Firebase , abra seu projeto.
- Selecione Configuração remota no menu para visualizar o painel do Configuração remota.
- Defina parâmetros com os mesmos nomes dos parâmetros definidos em seu aplicativo. Para cada parâmetro, você pode definir um valor padrão (que eventualmente substituirá o valor padrão correspondente no aplicativo) e também pode definir valores condicionais. Para saber mais, consulte Parâmetros e condições da configuração remota .
Etapa 6: buscar e ativar valores
Para buscar valores de parâmetros do back-end do Configuração remota, chame o método
fetch()
. Todos os valores definidos no back-end são buscados e armazenados no objeto do Configuração remota.Para disponibilizar valores de parâmetros buscados para seu aplicativo, chame o método
activate()
.Nos casos em que você deseja buscar e ativar valores em uma chamada, você pode usar uma solicitação
fetchAndActivate()
para buscar valores do back-end do Configuração remota e disponibilizá-los para o aplicativo:await remoteConfig.fetchAndActivate();
Como esses valores de parâmetro atualizados afetam o comportamento e a aparência do seu aplicativo, você deve ativar os valores buscados em um momento que garanta uma experiência tranquila para o usuário, como na próxima vez que o usuário abrir o aplicativo. Consulte Estratégias de carregamento do Configuração remota para mais informações e exemplos.
Etapa 7: ouça atualizações em tempo real
Depois de buscar os valores dos parâmetros, você poderá usar o Configuração remota em tempo real para detectar atualizações do back-end do Configuração remota. A Configuração remota em tempo real sinaliza aos dispositivos conectados quando há atualizações disponíveis e busca automaticamente as alterações após a publicação de uma nova versão da Configuração remota.
Observe que a Configuração remota em tempo real não está disponível para Web.
No seu aplicativo, use
onConfigUpdated
para começar a escutar atualizações e buscar automaticamente quaisquer novos valores de parâmetro.remoteConfig.onConfigUpdated.listen((event) async { await remoteConfig.activate(); // Use the new config values here. });
Na próxima vez que você publicar uma nova versão da Configuração remota, os dispositivos que estiverem executando seu aplicativo e ouvindo alterações ativarão a nova configuração.
Estrangulamento
Se um aplicativo buscar muitas vezes em um curto período de tempo, as chamadas de busca serão limitadas e o valor da propriedade lastFetchStatus
de FirebaseRemoteConfig
será RemoteConfigFetchStatus.throttle
.
O intervalo mínimo de busca padrão para o Configuração remota é de 12 horas, o que significa que as configurações não serão buscadas no back-end mais de uma vez em uma janela de 12 horas, independentemente de quantas chamadas de busca forem realmente feitas.
Durante o desenvolvimento do aplicativo, se você não estiver usando a Configuração remota em tempo real (que recomendamos), talvez você queira buscar e ativar as configurações com muita frequência (muitas vezes por hora) para permitir iterar rapidamente à medida que desenvolve e testa seu aplicativo. Para acomodar a iteração rápida em um projeto com até 10 desenvolvedores, você pode definir temporariamente um intervalo de busca mínimo baixo com setConfigSettings()
.
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(minutes: 5),
));
Próximos passos
Se você ainda não o fez, explore os casos de uso da configuração remota e dê uma olhada em alguns dos principais conceitos e documentação de estratégias avançadas, incluindo: