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


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 и начать прослушивать обновления в режиме реального времени .