Use Firebase Remote Config para definir parâmetros no app e atualizar os respectivos valores na nuvem. Assim, você modifica a aparência e o comportamento do app sem precisar distribuir uma atualização.
A biblioteca de Remote Config é usada para armazenar valores de parâmetro padrão no app, buscar valores de parâmetro atualizados no back-end de Remote Config e controlar quando eles são disponibilizados ao app. Saiba mais em Estratégias de carregamento da Configuração remota.
Etapa 1: adicionar o Firebase ao app
Antes de usar o Remote Config, 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.
Adicione o SDK do Firebase para C++ ao seu projeto em C++.
Adicionar o Firebase ao projeto em C++ envolve tarefas no console do Firebase e no projeto em C++ aberto (por exemplo, fazer o download dos arquivos de configuração do Firebase pelo console e movê-los para o projeto em C++).
Etapa 2: adicionar o Remote Config ao app
Android
Depois de adicionar o Firebase ao app:
Crie um app Firebase, transmitindo o ambiente JNI e a atividade:
app = ::firebase::App::Create(::firebase::AppOptions(), jni_env, activity);
Inicialize a biblioteca de Remote Config, conforme mostrado:
::firebase::remote_config::Initialize(app);
iOS+
Depois de adicionar o Firebase ao app:
Crie um app Firebase:
app = ::firebase::App::Create(::firebase::AppOptions());
Inicialize a biblioteca de Remote Config, 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âmetro padrão no app por meio do objeto de Remote Config. Assim, o app se comporta de maneira previsível antes de se conectar ao back-end de Remote Config e os valores padrão ficam disponíveis, caso nenhum tenha sido definido no back-end.
Defina um conjunto de valores de parâmetro padrão e nomes de parâmetro usando um objeto
ConfigKeyValue*
ou um objetoConfigKeyValueVariant*
com o tamanho da matriz.Depois de configurar os valores de parâmetro do back-end de Remote Config, faça o download de um arquivo com esses pares de chave-valor para criar o objeto
map
. Para mais informações, consulte Fazer o download dos padrões de modelo de Remote Config.Adicione esses valores ao objeto de Remote Config usando
SetDefaults()
.
Etapa 4: receber valores de parâmetros para uso no app
Agora você pode receber valores de parâmetro do objeto de Remote Config. Se você definir
valores no back-end de Remote Config, buscá-los e ativá-los,
eles vão estar disponíveis para o app. Caso
contrário, você vai receber os valores de parâmetro configurados no app
com SetDefaults()
.
Para ter esses valores, chame o método listado a seguir que está associado ao tipo de dado esperado pelo app, fornecendo a chave de parâmetro como argumento:
Etapa 5: definir valores de parâmetros
- Abra o projeto no console de Firebase.
- Selecione Remote Config no menu para acessar o painel de Remote Config.
- 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 de Remote Config.
Etapa 6: buscar e ativar os valores
- Para buscar os valores de parâmetro do back-end de Remote Config, chame o
método
Fetch()
. Todos os valores definidos no back-end são buscados e armazenados em cache no objeto de Remote Config. - 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 Remote Config em tempo real para detectar atualizações do back-end de Remote Config. Remote Config em tempo real sinaliza para dispositivos conectados quando atualizações estão disponíveis e busca as mudanças automaticamente depois que você publica uma nova versão de Remote Config.
O SDK de C++ para Firebase v11.0.0 e mais recente para plataformas Android e Apple é compatível com atualizações em tempo real.
- 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 quandoActivate
é 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 de Remote Config, os dispositivos que estiverem executando o 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 de Remote Config, bem como alguns dos principais conceitos e a documentação de estratégias avançadas, que incluem: