Начало работы с Remote Config в C++

Выберите платформу: iOS+ Android Веб Flutter Unity C++


Вы можете использовать Firebase Remote Config, чтобы задавать параметры в приложении и обновлять их значения в облаке. Это позволяет изменять внешний вид и поведение приложения без выпуска обновлений.

Библиотека Remote Config используется для хранения значений параметров по умолчанию, получения обновленных значений параметров из серверной части Remote Config и управления тем, когда полученные значения становятся доступны приложению. Подробнее о стратегиях загрузки Remote Config…

Шаг 1. Добавьте Firebase в приложение

Чтобы использовать Remote Config, вам необходимо:

  • Зарегистрируйте проект C++ и настройте его для использования Firebase.

    Если в проекте уже используется Firebase, можете пропустить этот шаг.

  • Добавьте Firebase C++ SDK в свой проект C++.

Обратите внимание, что для добавления Firebase в проект C++ нужно выполнить действия как в консоли Firebase, так и в вашем открытом проекте C++. Например, вам потребуется скачать файлы конфигурации Firebase из консоли, а затем переместить их в проект C++.

Шаг 2. Добавьте в приложение значок Remote Config

Android

После того как вы добавите Firebase в приложение:

  1. Создайте приложение Firebase, передав среду JNI и объект Activity:

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

  2. Инициализируйте библиотеку Remote Config, как показано ниже:

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

iOS+

После того как вы добавите Firebase в приложение:

  1. Создайте приложение Firebase:

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

  2. Инициализируйте библиотеку Remote Config, как показано ниже:

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

Шаг 3. Задайте значения параметров по умолчанию в приложении

Вы можете задать значения параметров по умолчанию для объекта Remote Config, чтобы приложение работало нужным образом до подключения к серверной части Remote Config и чтобы значения по умолчанию были доступны, если они не заданы на сервере.

  1. Определите набор названий параметров и их значения по умолчанию, используя объект ConfigKeyValue* или ConfigKeyValueVariant* с размером массива.

    Если вы уже настроили значения серверного параметра Remote Config, вы можете скачать файл, содержащий эти пары "ключ-значение", и использовать его для создания объекта map. Подробнее о том, как скачать настройки по умолчанию для шаблона Remote Config…

  2. Добавьте эти значения в объект Remote Config, используя SetDefaults().

Шаг 4. Получите значения параметров, которые будут использоваться в приложении

Теперь вы можете получать значения параметров из объекта Remote Config. Если вы задали значения в серверной части Remote Config, получили их и активировали, то эти значения будут доступны в приложении. В противном случае вы получите значения параметров, настроенные в приложении с помощью SetDefaults().

Чтобы получить эти значения, вызовите любой из следующих методов, которые сопоставляются с типом данных, ожидаемым вашим приложением, указав ключ параметра в качестве аргумента:

Шаг 5. Укажите значения параметров

  1. В консоли Firebase выберите DevOps & Engagement (DevOps и взаимодействие) > Remote Config (Удаленная настройка).

  2. Задайте параметры с теми же названиями, что и в приложении. Для каждого параметра можно указать значение по умолчанию (оно будет переопределять значение по умолчанию в приложении) и условные значения. Подробнее о параметрах и условиях Remote Config…

Шаг 6. Получите и активируйте значения

  1. Чтобы получить значения параметров из серверной части Remote Config, вызовите метод Fetch(). Все значения, заданные на сервере, извлекаются и кешируются в объекте Remote Config.
  2. Чтобы полученные значения параметров стали доступны в приложении, вызовите метод ActivateFetched().

Шаг 7. Слушайте обновления в реальном времени

После того как вы получите значения параметров, вы можете использовать Remote Config в реальном времени, чтобы отслеживать обновления от серверной части Remote Config. Сигналы в реальном времени Remote Config передаются на подключенные устройства, когда становятся доступны обновления, и автоматически извлекают изменения после публикации новой версии Remote Config.

Обновления в реальном времени поддерживаются в Firebase C++ SDK версии 11.0.0 и выше для платформ Android и Apple.

  1. В приложении вызовите метод 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, устройства, на которых запущено ваше приложение и которые отслеживают изменения, вызовут прослушиватель обновлений конфигурации.