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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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