Понимание удаленной конфигурации в реальном времени

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

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

  • Снизьте риски, внедряя функции поэтапно для целевых пользователей и выполняя аварийный откат в случае необходимости.
  • Повысьте вовлеченность пользователей, быстро настраивая пользовательский опыт по мере использования приложения. Например, вы можете обновлять баннеры и предлагать бонусы пользователям, которые соответствуют определенным параметрам Google Analytics или динамически регулировать сложность игры для групп игроков.
  • Сократите зависимости сборки и повысьте производительность разработчиков: используйте параметры Remote Config в качестве флагов функций, чтобы предоставить доступ к функциональности вашим командам разработчиков и тестировщиков, скрывая ее при этом от пользователей в рабочей среде.

Чтобы узнать больше о способах использования Remote Config , см. раздел «Что можно делать с Remote Config ?».

В этом руководстве вы узнаете:

  • Узнайте больше о взаимодействии клиента и сервера, обеспечивающем обновления в режиме реального времени.
  • Разберитесь, как работает функциональность реального времени в SDK.
  • Узнайте, как использовать обновления в реальном времени, чтобы поддерживать конфигурацию вашего приложения в актуальном состоянии.

Взаимодействие клиент-сервер в режиме реального времени

При реализации Remote Config в реальном времени в вашем приложении вы создаете слушатель в реальном времени, который открывает HTTP-соединение с бэкэндом Remote Config . Запрос включает версию конфигурации, кэшированную на устройстве. Сервер Remote Config в реальном времени использует сообщение об аннулировании , чтобы сообщить приложению, когда следует получить более новую версию конфигурации на стороне сервера.

Если на сервере установлена ​​более новая версия, он немедленно отправляет сигнал аннулирования. Если более новой версии нет, он поддерживает соединение открытым и ждет, пока она не будет опубликована на сервере. Когда клиентский SDK получает сигнал аннулирования, он автоматически получает его, а затем вызывает функцию обратного вызова обработчика, зарегистрированную при открытии соединения обработчика. Эта операция получения аналогична вызову функции получения, который можно выполнить с помощью SDK, но обходит любое кэширование или настройку minimumFetchInterval . Соединение между клиентом и сервером поддерживается, пока приложение находится на переднем плане.

Рабочий процесс клиент-серверной удаленной настройки в режиме реального времени
Рабочий процесс клиент-серверной Remote Config режиме реального времени

Поскольку соединение между клиентом и сервером осуществляется по протоколу HTTP, оно не требует использования каких-либо зависимостей от других библиотек.

Следите за обновлениями

Обновления в реальном времени дополняют вызовы fetch Remote Config . Мы рекомендуем вызывать функцию получения данных при запуске приложения (или в какой-либо момент жизненного цикла приложения) и отслеживать обновления Remote Config в реальном времени во время пользовательской сессии, чтобы гарантировать получение самых актуальных значений сразу после их публикации на сервере.

Для отслеживания обновлений вызовите метод onConfigUpdated , реализующий функцию обратного вызова, которая вызывается всякий раз, когда в приложении появляется обновление Remote Config . В фоновом режиме этот вызов запускает отслеживание обновлений от сервера Remote Config . Подробнее о взаимоотношениях клиент-сервер см. в предыдущем разделе .

Функция обратного вызова часто является подходящим местом для использования activate , чтобы сделать обновленные параметры конфигурации доступными для вашего приложения. Дополнительные стратегии активации значений параметров при использовании Remote Config в реальном времени см. в разделе «Стратегии загрузки Remote Config Firebase».

Выборочно активировать значения параметров

При вызове onConfigUpdated вы можете дождаться изменения и активировать его.

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

  • Добавлены или удалены ключи параметров
  • Ключи параметров, значения которых изменились
  • Ключи параметров, метаданные которых изменились (например, информация о персонализации Remote Config ).
  • Ключи параметров, источник значения которых изменился (например, значение по умолчанию в приложении обновилось до значения на стороне сервера).

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

Иногда запрос (инициированный либо при вызове метода fetch , либо в режиме реального времени с помощью Remote Config ) не приводит к обновлению данных для клиента. В таких случаях метод ` RemoteConfigUpdate или его завершение не будут вызваны.

Добавление и удаление слушателей

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

Чтобы закрыть активный слушатель, вы можете отменить подписку. Если это единственный зарегистрированный слушатель, это закрывает соединение с сервером в режиме реального времени. Пример реализации см. в примере Flutterfire Remote Config . Чтобы прекратить прослушивание, сохраните ссылку на регистрацию слушателя. Вызовите remove , чтобы остановить прослушивание на этом этапе регистрации. Если это единственный зарегистрированный слушатель, вызов remove закрывает соединение с сервером в режиме реального времени.

Хотя вы можете вручную остановить прослушивание обновлений, это часто не требуется. Функция Real-time Remote Config автоматически останавливает прослушивание обновлений, когда приложение переходит в фоновый режим, и возобновляет его, когда приложение переходит в активный режим.

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

Ознакомьтесь с руководством «Начало работы с Firebase Remote Config , чтобы настроить Remote Config и начать отслеживать обновления в режиме реального времени .