Вы можете использовать Firebase Remote Config, чтобы определить параметры в своем приложении и обновить их значения в облаке, что позволит вам изменить внешний вид и поведение вашего приложения без распространения обновления приложения.
Библиотека Remote Config используется для хранения значений параметров по умолчанию в приложении, извлечения обновленных значений параметров из серверной части Remote Config и управления тем, когда полученные значения становятся доступными для вашего приложения. Дополнительные сведения см. в разделе Стратегии загрузки Remote Config .
Шаг 1. Добавьте Firebase в свое приложение.
Прежде чем вы сможете использовать Remote Config , вам необходимо:
Зарегистрируйте свой проект C++ и настройте его для использования Firebase.
Если ваш проект C++ уже использует Firebase, значит, он уже зарегистрирован и настроен для Firebase.
Добавьте Firebase C++ SDK в свой проект C++.
Обратите внимание, что добавление Firebase в ваш проект C++ включает задачи как в консоли Firebase , так и в вашем открытом проекте C++ (например, вы загружаете файлы конфигурации Firebase из консоли, а затем перемещаете их в свой проект C++).
Шаг 2. Добавьте Remote Config в свое приложение
Андроид
После того, как вы добавили Firebase в свое приложение:
Создайте приложение Firebase, передав среду JNI и действие:
app = ::firebase::App::Create(::firebase::AppOptions(), jni_env, activity);
Инициализируйте библиотеку Remote Config, как показано ниже:
::firebase::remote_config::Initialize(app);
iOS+
После того, как вы добавили Firebase в свое приложение:
Создайте приложение Firebase:
app = ::firebase::App::Create(::firebase::AppOptions());
Инициализируйте библиотеку Remote Config, как показано ниже:
::firebase::remote_config::Initialize(app);
Шаг 3. Установите значения параметров по умолчанию в приложении
Вы можете установить значения параметров по умолчанию в приложении в объекте Remote Config, чтобы ваше приложение вело себя должным образом, прежде чем оно подключится к серверной части Remote Config, и чтобы значения по умолчанию были доступны, если они не установлены на серверной части.
Определите набор имен параметров и значений параметров по умолчанию, используя объект
std::map<const char*, const char*>
или объектstd::map<const char*, firebase::Variant>
.- Узнайте о
firebase::Variant
.
Если вы уже настроили значения внутренних параметров Remote Config, вы можете загрузить файл, содержащий эти пары ключ/значение, и использовать его для создания объекта
map
. Дополнительные сведения см. в разделе Загрузка шаблона Remote Config по умолчанию .- Узнайте о
Добавьте эти значения в объект Remote Config с помощью
SetDefaults()
.
Шаг 4. Получите значения параметров для использования в приложении
Теперь вы можете получить значения параметров из объекта Remote Config. Если вы задали значения в бэкэнде Remote Config, извлекли их, а затем активировали, эти значения станут доступны вашему приложению. В противном случае вы получите значения параметров в приложении, настроенные с помощью SetDefaults()
.
Чтобы получить эти значения, вызовите метод, указанный ниже, который сопоставляется с типом данных, ожидаемым вашим приложением, указав ключ параметра в качестве аргумента:
Шаг 5. Подключите свое приложение к консоли Firebase.
В консоли Firebase добавьте свое приложение в проект Firebase.
Шаг 6: Установите значения параметров
- В консоли Firebase откройте свой проект.
- Выберите Remote Config в меню, чтобы просмотреть панель управления Remote Config.
- Определите параметры с теми же именами, что и параметры, которые вы определили в своем приложении. Для каждого параметра вы можете установить значение по умолчанию (которое в конечном итоге переопределит значение по умолчанию в приложении) и условные значения. Дополнительные сведения см. в разделе Параметры и условия Remote Config .
Шаг 7: Получить и активировать значения
- Чтобы получить значения параметров из бэкэнда Remote Config, вызовите метод
Fetch()
. Любые значения, которые вы устанавливаете на серверной части, извлекаются и кэшируются в объекте Remote Config. - Чтобы сделать извлеченные значения параметров доступными для вашего приложения, вызовите метод
ActivateFetched()
Шаг 8. Следите за обновлениями в режиме реального времени
После получения значений параметров вы можете использовать Remote Config в режиме реального времени для прослушивания обновлений из серверной части Remote Config. Remote Config в режиме реального времени сигнализирует подключенным устройствам, когда доступны обновления, и автоматически извлекает изменения после публикации новой версии Remote Config.
Обновления в реальном времени поддерживаются Firebase C++ SDK версии 11.0.0+ и выше для платформ Android и Apple.
- В своем приложении вызовите
AddOnConfigUpdateListener
, чтобы начать прослушивание обновлений и автоматически получать любые новые или обновленные значения параметров. В следующем примере выполняется прослушивание обновлений и при вызовеActivate
используются вновь полученные значения для отображения обновленного приветственного сообщения.
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); } });
В следующий раз, когда вы опубликуете новую версию Remote Config, устройства, на которых запущено ваше приложение и ожидают изменений, вызовут прослушиватель обновления конфигурации.
Следующие шаги
Если вы еще этого не сделали, изучите варианты использования Remote Config и ознакомьтесь с некоторыми ключевыми концепциями и документацией по расширенным стратегиям, в том числе: