Начало работы с Firebase Remote Config


Вы можете использовать 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 в свое приложение:

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

    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. Определите набор имен параметров и значения параметров по умолчанию, используя std::map<const char*, const char*> или объект std::map<const char*, firebase::Variant> .

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

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

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

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

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

Шаг 5: Установите значения параметров

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

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

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

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

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

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

Следующие шаги

Если вы еще этого не сделали, изучите варианты использования Remote Config и ознакомьтесь с некоторыми ключевыми концепциями и документацией по расширенным стратегиям, в том числе: