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.
A biblioteca do Configuração remota é usada para armazenar valores de parâmetros padrão no aplicativo, buscar valores de parâmetros atualizados do back-end do Configuração remota e controlar quando os valores buscados são disponibilizados para seu aplicativo. Para saber mais, consulte Estratégias de carregamento do Configuração remota .
Etapa 1: adicione o Firebase ao seu aplicativo
Antes de usar o Configuração remota , você precisa:
Registre seu projeto C++ e configure-o para usar o Firebase.
Se o seu projeto C++ já usa o Firebase, ele já está registrado e configurado para o Firebase.
Adicione o SDK do Firebase para C++ ao seu projeto C++.
Observe que adicionar o Firebase ao seu projeto C++ envolve tarefas no console do Firebase e no seu projeto C++ aberto (por exemplo, você baixa os arquivos de configuração do Firebase do console e os move para o seu projeto C++).
Etapa 2: adicionar o Configuração remota ao seu app
Android
Depois de adicionar o Firebase ao seu aplicativo:
Crie um aplicativo Firebase, passando o ambiente JNI e a atividade:
app = ::firebase::App::Create(::firebase::AppOptions(), jni_env, activity);
Inicialize a biblioteca do Configuração remota, conforme mostrado:
::firebase::remote_config::Initialize(app);
iOS+
Depois de adicionar o Firebase ao seu aplicativo:
Crie um aplicativo Firebase:
app = ::firebase::App::Create(::firebase::AppOptions());
Inicialize a biblioteca do Configuração remota, conforme mostrado:
::firebase::remote_config::Initialize(app);
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 estiver definido no back-end.
Defina um conjunto de nomes de parâmetros e valores de parâmetros padrão usando um objeto
std::map<const char*, const char*>
ou um objetostd::map<const char*, firebase::Variant>
.- Saiba mais sobre
firebase::Variant
.
Se você já configurou os valores dos parâmetros de back-end do Configuração remota, poderá fazer download de um arquivo que contém esses pares de chave/valor e usá-lo para construir seu objeto de
map
. Para obter mais informações, consulte Baixar padrões do modelo do Configuração remota .- Saiba mais sobre
Adicione esses valores ao objeto do Configuração remota usando
SetDefaults()
.
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 do Configuração remota, 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:
Etapa 5: definir valores de parâmetros
- 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 do aplicativo) e valores condicionais. Para saber mais, consulte Parâmetros e condições do 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 em cache no objeto do Configuração remota. - Para disponibilizar valores de parâmetros buscados para seu aplicativo, chame o
ActivateFetched()
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.
As atualizações em tempo real são compatíveis com o Firebase C++ SDK v11.0.0+ e versões posteriores para plataformas Android e Apple.
- No seu aplicativo, chame
AddOnConfigUpdateListener
para começar a escutar atualizações e buscar automaticamente quaisquer valores de parâmetro novos ou atualizados. O exemplo a seguir escuta atualizações e, quandoActivate
é chamado, usa os valores recém-buscados para exibir uma mensagem de boas-vindas 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 do Configuração remota, os dispositivos que estiverem executando seu aplicativo e ouvindo alterações chamarão o ouvinte de atualização de configuração.
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: