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


Real-time 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, оно не требует никаких зависимостей от других библиотек.

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

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

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

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

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

Когда вы звонитеaddOnConfigUpdateListener ,вы можете дождаться изменения и активировать его.

Обратный вызов onUpdate вызывается, когда новая версия шаблона была автоматически загружена и когда эта новая версия внесла изменения в текущие активированные значения параметров в приложении.

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

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

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

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

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

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

Вызов возвращает «регистрацию слушателя», которая имеет метод, называемыйremove .

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

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

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

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