Introdução à Configuração remota do Firebase


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.

A biblioteca da Configuração remota é usada para armazenar valores de parâmetro padrão no app, buscar valores de parâmetro atualizados no back-end do recurso e controlar quando eles são disponibilizados para o app. Saiba mais em Estratégias de carregamento da Configuração remota.

Etapa 1: adicionar o Firebase ao app

Antes de usar a Configuração remota, você precisa:

  • Registrar seu projeto em C++ e configurá-lo para usar o Firebase

    Se o projeto em C++ já usa o Firebase, então ele já está registrado e configurado para o Firebase.

  • Adicionar o SDK do Firebase para C++ ao seu projeto em C ++.

A adição do Firebase ao projeto em C++ envolve tarefas no Console do Firebase e no projeto aberto em C++, como fazer o download dos arquivos de configuração do Firebase no console e mover esses arquivos para o projeto em C++.

Etapa 2: adicionar a Configuração remota ao seu app

Android

Depois de adicionar o Firebase ao app:

  1. Crie um app Firebase, transmitindo o ambiente JNI e a atividade:

    app = ::firebase::App::Create(::firebase::AppOptions(), jni_env, activity);

  2. Inicialize a biblioteca de Configuração remota, conforme mostrado:

    ::firebase::remote_config::Initialize(app);

iOS+

Depois de adicionar o Firebase ao app:

  1. Crie um app Firebase:

    app = ::firebase::App::Create(::firebase::AppOptions());

  2. Inicialize a biblioteca de Configuração remota, conforme mostrado:

    ::firebase::remote_config::Initialize(app);

Etapa 3: definir os 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.

  1. Defina um conjunto de valores padrão e nomes de parâmetro usando um objeto std::map<const char*, const char*> ou um objeto std::map<const char*, firebase::Variant>.

    Depois de configurar os valores de parâmetro do back-end da Configuração remota, faça o download de um arquivo com esses pares de chave-valor para criar seu objeto map. Para mais informações, consulte Fazer o download dos padrões do modelo da Configuração remota.

  2. Adicione esses valores ao objeto da Configuração remota usando SetDefaults().

Etapa 4: receber valores de parâmetro para uso no app

Agora você pode receber valores de parâmetro do objeto da Configuração remota. Se você definir valores no back-end da Configuração remota, buscá-los e ativá-los, eles vão estar disponíveis para o app. Caso contrário, receba os valores de parâmetro configurados no app usando SetDefaults().

Para isso, chame o método listado a seguir, que é associado ao tipo de dados esperado pelo app, fornecendo a chave de parâmetro como argumento:

Etapa 5: definir valores de parâmetros

  1. Abra seu projeto no Console do Firebase.
  2. Selecione Configuração remota no menu para explorar 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) e valores condicionais. Saiba mais em Parâmetros e condições da Configuração remota.

Etapa 6: buscar e ativar os valores

  1. Para buscar os valores de parâmetro no back-end da Configuração remota, chame o método Fetch(). Todos os valores definidos no back-end são buscados e armazenados em cache no objeto da Configuração remota.
  2. Para disponibilizar valores de parâmetro buscados ao seu app, chame ActivateFetched().

Etapa 7: detectar atualizações em tempo real

Depois de buscar valores de parâmetros, é possível usar a Configuração remota em tempo real para detectar atualizações do back-end. A Configuração remota em tempo real sinaliza para dispositivos conectados quando atualizações estão disponíveis e busca mudanças automaticamente depois que você publica uma nova versão da Configuração remota.

O SDK do Firebase para C++ v11.0.0 e as versões mais recentes para plataformas Android e Apple oferecem suporte a atualizações em tempo real.

  1. No seu app, chame AddOnConfigUpdateListener para detectar atualizações e buscar novos valores de parâmetros automaticamente. O exemplo a seguir detecta atualizações e usa os valores recém-buscados quando Activate é chamado para mostrar uma mensagem de recepção atualizada.
remote_config->AddOnConfigUpdateListener(
    [](firebase::remote_config::ConfigUpdate&& config_update,
       firebase::remote_config::RemoteConfigError remote_config_error) {
      if (remote_config_error != firebase::remote_config::kRemoteConfigErrorNone) {
        printf("Error listening for config updates: %d", remote_config_error);
      }
      // Search the `updated_keys` set for the key "welcome_message."
      // `updated_keys` represents the keys that have changed since the last
      // fetch.
      if (std::find(config_update.updated_keys.begin(),
                    config_update.updated_keys.end(),
                    "welcome_message") != config_update.updated_keys.end()) {
        remote_config->Activate().OnCompletion(
            [&](const firebase::Future& completed_future,
               void* user_data) {
              // The key "welcome_message" was found within `updated_keys` and
              // can be activated.
              if (completed_future.error() == 0) {
                DisplayWelcomeMessage();
              } else {
                printf("Error activating config: %d", completed_future.error());
              }
            },
            nullptr);
      }
    });

Na próxima vez que você publicar uma nova versão da Configuração remota, os dispositivos que estiverem executando seu app e detectando alterações vão chamar o listener de atualização da configuração.

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: