Понимание удаленной настройки в реальном времени


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 . Соединение клиент-сервер поддерживается, пока приложение находится на переднем плане.

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

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

Слушайте обновления

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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