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 dele na nuvem. Dessa forma, é possível modificar a aparência e o comportamento do seu app sem distribuir uma atualização dele. Neste guia, você vai aprender as noções básicas e um exemplo de código.

1. Adicionar o Firebase e o SDK da Configuração remota ao seu app

  1. Instale e inicialize os SDKs do Firebase para Flutter, caso ainda não tenha feito isso.

  2. Na Configuração remota, o Google Analytics é necessário para a segmentação condicional de instâncias de apps para propriedades do usuário e públicos-alvo. Ative o Google Analytics no seu projeto.

  3. No diretório raiz do projeto do Flutter, execute o seguinte comando para instalar o plug-in de Configuração remota:

    flutter pub add firebase_remote_config
    

    Além disso, como parte dos ajustes da Configuração remota, você precisa adicionar o SDK do Firebase para Google Analytics ao seu app.

    flutter pub add firebase_analytics
    
  4. Recrie seu projeto:

    flutter run
    

2. Acessar o objeto Singleton da Configuração remota

Receba uma instância de objeto do recurso 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âmetro atualizados do back-end e controlar quando eles são disponibilizados no app.

Durante o desenvolvimento, recomendamos definir um intervalo de busca mínimo relativamente baixo. Para mais informações, consulte Limitação.

3. Definir valores de parâmetros padrão no app

É possível definir os valores de parâmetros padrão no app com 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 estarão disponíveis, caso nenhum tenha sido 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!",
});

4. Receber valores de parâmetros para uso no app

É possível receber valores de parâmetro do objeto da Configuração remota. Se você definir valores no back-end, buscá-los e, depois, ativá-los, eles estarão disponíveis para seu app. Caso contrário, você receberá os valores de parâmetros configurados no app usando setDefaults().

Para ter esses valores, chame o método listado a seguir que está mapeado ao tipo de dado esperado pelo app, fornecendo a chave de parâmetro como argumento:

  • getBool()
  • getDouble()
  • getInt()
  • getString()

5. Definir valores de parâmetros no back-end da Configuração remota

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. Nesta seção, descrevemos 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 definir um valor padrão (que, por fim, substituirá o valor padrão no app correspondente), assim como valores condicionais. Para saber mais, consulte Parâmetros e condições do recurso Configuração remota.

6. Buscar e ativar valores

  1. Para recuperar os valores de parâmetros usando o back-end da Configuração remota, chame o método fetch(). Todos os valores definidos no back-end são recuperados e armazenados no objeto da Configuração remota.

  2. Para disponibilizar esses valores de parâmetro recuperados ao app, chame o método activate().

    Se você quiser buscar e ativar valores em uma chamada, use uma solicitação fetchAndActivate() para buscar valores de back-end da Configuração remota e disponibilizá-los para o app:

    await remoteConfig.fetchAndActivate();
    

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 app fizer muitas buscas em um curto período, as chamadas de busca serão limitadas, e o valor da propriedade lastFetchStatus de FirebaseRemoteConfig vai ser RemoteConfigFetchStatus.throttle.

O intervalo de busca mínimo padrão do 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 uma janela de 12 horas, independentemente de quantas chamadas de busca forem realmente realizadas.

Durante o desenvolvimento de apps, recomendamos que você faça buscas e ative as configurações frequentemente (várias vezes por hora) para permitir a iteração rápida enquanto desenvolve e testa seu app. Para possibilitar a iteração rápida em um projeto com até 10 desenvolvedores, é possível 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ó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: