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

Поскольку соединение клиент-сервер осуществляется по протоколу 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
закрывает соединение с сервером в реальном времени.
Следующие шаги
Ознакомьтесь с разделом Начало работы с Firebase Remote Config , чтобы настроить Remote Config и начать прослушивать обновления в режиме реального времени .