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

Выберите платформу: iOS+ Android Web Flutter Unity C++

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 режиме реального времени во время сеанса пользователя, чтобы гарантировать наличие актуальных значений сразу после их публикации на сервере.

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

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

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

При вызове onConfigUpdated вы можете дождаться изменения и активировать его.

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

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

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

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

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

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

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

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

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

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