Начало работы с 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. Определите набор имен параметров и значения параметров по умолчанию, используя объект ConfigKeyValue* или объект ConfigKeyValueVariant* с размером массива.

    Если вы уже настроили значения параметров серверной части 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 и посмотрите на некоторые из ключевых концепций и документации «Расширенные стратегии», в том числе:

,


You can use Firebase Remote Config to define parameters in your app and update their values in the cloud, allowing you to modify the appearance and behavior of your app without distributing an app update.

The Remote Config library is used to store in-app default parameter values, fetch updated parameter values from the Remote Config backend, and control when fetched values are made available to your app. To learn more, see Remote Config loading strategies .

Step 1: Add Firebase to your app

Before you can use Remote Config , you need to:

  • Register your C++ project and configure it to use Firebase.

    If your C++ project already uses Firebase, then it's already registered and configured for Firebase.

  • Add the Firebase C++ SDK to your C++ project.

Note that adding Firebase to your C++ project involves tasks both in the Firebase console and in your open C++ project (for example, you download Firebase config files from the console, then move them into your C++ project).

Step 2: Add Remote Config to your app

Андроид

After you've added Firebase to your app:

  1. Create a Firebase App, passing in the JNI environment and Activity:

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

  2. Initialize the Remote Config library, as shown:

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

iOS+

After you've added Firebase to your app:

  1. Create a Firebase App:

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

  2. Initialize the Remote Config library, as shown:

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

Step 3: Set in-app default parameter values

You can set in-app default parameter values in the Remote Config object, so that your app behaves as intended before it connects to the Remote Config backend, and so that default values are available if none are set on the backend.

  1. Define a set of parameter names, and default parameter values using a ConfigKeyValue* object or a ConfigKeyValueVariant* object with the size of the array.

    If you have already configured Remote Config backend parameter values, you can download a file that contains these key/value pairs and use it to construct your map object. For more information, see Download Remote Config template defaults .

  2. Add these values to the Remote Config object using SetDefaults() .

Step 4: Get parameter values to use in your app

Now you can get parameter values from the Remote Config object. If you set values in the Remote Config backend, fetched them, and then activated them, those values are available to your app. Otherwise, you get the in-app parameter values configured using SetDefaults() .

To get these values, call the method listed below that maps to the data type expected by your app, providing the parameter key as an argument:

Step 5: Set parameter values

  1. In the Firebase console , open your project.
  2. Select Remote Config from the menu to view the Remote Config dashboard.
  3. Define parameters with the same names as the parameters that you defined in your app. For each parameter, you can set a default value (which will eventually override the in-app default value) and conditional values. To learn more, see Remote Config parameters and conditions .

Step 6: Fetch and activate values

  1. To fetch parameter values from the Remote Config backend, call the Fetch() method. Any values that you set on the backend are fetched and cached in the Remote Config object.
  2. To make fetched parameter values available to your app, call the ActivateFetched()

Step 7: Listen for updates in real time

After you fetch parameter values, you can use real-time Remote Config to listen for updates from the Remote Config backend. Real-time Remote Config signals to connected devices when updates are available and automatically fetches the changes after you publish a new Remote Config version.

Real-time updates are supported by the Firebase C++ SDK v11.0.0+ and higher for Android and Apple platforms.

  1. In your app, call AddOnConfigUpdateListener to start listening for updates and automatically fetch any new or updated parameter values. The following example listens for updates and, when Activate is called, uses the newly fetched values to display an updated welcome message.
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);
      }
    });

The next time you publish a new version of your Remote Config , devices that are running your app and listening for changes will call the config update listener.

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

If you haven't already, explore the Remote Config use cases , and take a look at some of the key concepts and advanced strategies documentation, including:

,


You can use Firebase Remote Config to define parameters in your app and update their values in the cloud, allowing you to modify the appearance and behavior of your app without distributing an app update.

The Remote Config library is used to store in-app default parameter values, fetch updated parameter values from the Remote Config backend, and control when fetched values are made available to your app. To learn more, see Remote Config loading strategies .

Step 1: Add Firebase to your app

Before you can use Remote Config , you need to:

  • Register your C++ project and configure it to use Firebase.

    If your C++ project already uses Firebase, then it's already registered and configured for Firebase.

  • Add the Firebase C++ SDK to your C++ project.

Note that adding Firebase to your C++ project involves tasks both in the Firebase console and in your open C++ project (for example, you download Firebase config files from the console, then move them into your C++ project).

Step 2: Add Remote Config to your app

Андроид

After you've added Firebase to your app:

  1. Create a Firebase App, passing in the JNI environment and Activity:

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

  2. Initialize the Remote Config library, as shown:

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

iOS+

After you've added Firebase to your app:

  1. Create a Firebase App:

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

  2. Initialize the Remote Config library, as shown:

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

Step 3: Set in-app default parameter values

You can set in-app default parameter values in the Remote Config object, so that your app behaves as intended before it connects to the Remote Config backend, and so that default values are available if none are set on the backend.

  1. Define a set of parameter names, and default parameter values using a ConfigKeyValue* object or a ConfigKeyValueVariant* object with the size of the array.

    If you have already configured Remote Config backend parameter values, you can download a file that contains these key/value pairs and use it to construct your map object. For more information, see Download Remote Config template defaults .

  2. Add these values to the Remote Config object using SetDefaults() .

Step 4: Get parameter values to use in your app

Now you can get parameter values from the Remote Config object. If you set values in the Remote Config backend, fetched them, and then activated them, those values are available to your app. Otherwise, you get the in-app parameter values configured using SetDefaults() .

To get these values, call the method listed below that maps to the data type expected by your app, providing the parameter key as an argument:

Step 5: Set parameter values

  1. In the Firebase console , open your project.
  2. Select Remote Config from the menu to view the Remote Config dashboard.
  3. Define parameters with the same names as the parameters that you defined in your app. For each parameter, you can set a default value (which will eventually override the in-app default value) and conditional values. To learn more, see Remote Config parameters and conditions .

Step 6: Fetch and activate values

  1. To fetch parameter values from the Remote Config backend, call the Fetch() method. Any values that you set on the backend are fetched and cached in the Remote Config object.
  2. To make fetched parameter values available to your app, call the ActivateFetched()

Step 7: Listen for updates in real time

After you fetch parameter values, you can use real-time Remote Config to listen for updates from the Remote Config backend. Real-time Remote Config signals to connected devices when updates are available and automatically fetches the changes after you publish a new Remote Config version.

Real-time updates are supported by the Firebase C++ SDK v11.0.0+ and higher for Android and Apple platforms.

  1. In your app, call AddOnConfigUpdateListener to start listening for updates and automatically fetch any new or updated parameter values. The following example listens for updates and, when Activate is called, uses the newly fetched values to display an updated welcome message.
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);
      }
    });

The next time you publish a new version of your Remote Config , devices that are running your app and listening for changes will call the config update listener.

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

If you haven't already, explore the Remote Config use cases , and take a look at some of the key concepts and advanced strategies documentation, including: