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


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 , чтобы сделать обновлённые параметры конфигурации доступными для вашего приложения. Дополнительные стратегии активации значений параметров при использовании функции Remote Config в реальном времени см. в статье «Стратегии загрузки Remote Config Firebase».

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

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