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


Вы можете настроить шаблоны для вариантов использования как клиента, так и сервера. Шаблоны клиентов передаются любым экземплярам приложений, которые реализуют клиентские SDK Firebase для Remote Config , включая приложения Android, Apple, Web, Unity, Flutter и C++. Параметры и значения Remote Config из шаблонов, специфичных для сервера, передаются реализациям Remote Config (включая Cloud Run и Cloud Functions), которые используют Firebase Admin Node.js SDK v12.1.0+.

При использовании консоли Firebase или серверных API Remote Config вы определяете один или несколько параметров (пары «ключ-значение») и предоставляете для этих параметров значения по умолчанию в приложении. Вы можете переопределить значения по умолчанию в приложении, определив значения параметров. Ключи параметров и значения параметров представляют собой строки, но значения параметров можно преобразовать в другие типы данных, когда вы используете эти значения в своем приложении.

Используя консоль Firebase , Admin SDK или REST API Remote Config , вы можете создавать новые значения по умолчанию для своих параметров, а также условные значения, которые используются для целевых групп экземпляров приложения. Каждый раз, когда вы обновляете свою конфигурацию в консоли Firebase , Firebase создает и публикует новую версию вашего шаблона Remote Config . Предыдущая версия сохраняется, что позволяет вам восстановить или откатить ее по мере необходимости. Эти операции доступны вам в консоли Firebase , Firebase Admin SDK и REST API и более подробно описаны в разделе «Управление версиями шаблонов Remote Config .

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

Условия, правила и условные значения

Условие используется для выбора группы экземпляров приложения. Условия состоят из одного или нескольких правил, каждое из которых должно иметь значение true , чтобы условие было признано true для данного экземпляра приложения. Если значение правила не определено (например, когда значение недоступно), это правило будет иметь значение false .

Например, вы можете создать параметр, который определяет имя модели и строку версии модели большого языка (LLM), а также обслуживать ответы из разных моделей на основе специальных правил сигналов . В этом случае вы можете использовать стабильную версию модели в качестве значения по умолчанию для обслуживания большинства запросов и использовать пользовательский сигнал для использования экспериментальной модели для ответа на запросы тестовых клиентов.

Параметр может иметь несколько условных значений, использующих разные условия, а параметры могут использовать общие условия в проекте. На вкладке «Параметры» консоли Firebase вы можете просмотреть процент выборки для условных значений каждого параметра. Эта метрика показывает процент запросов за последние 24 часа, получивших каждое значение.

Приоритет значения параметра

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

  1. Во-первых, условные значения применяются для любых условий, которые оцениваются как true для данного клиентского запроса. Если несколько условий оцениваются как true , первое (верхнее), отображаемое в пользовательском интерфейсе консоли Firebase имеет приоритет, а условные значения, связанные с этим условием, предоставляются, когда приложение получает значения из серверной части. Вы можете изменить приоритет условий, перетаскивая условия на вкладке «Условия» .

  2. Если нет условных значений с условиями, которые оцениваются как true , значение по умолчанию Remote Config предоставляется, когда приложение извлекает значения из серверной части. Если параметр не существует в серверной части или если для значения по умолчанию установлено значение «Использовать по умолчанию в приложении» , тогда для этого параметра не предоставляется значение, когда приложение извлекает значения.

В вашем приложении значения параметров возвращаются методами get в соответствии со следующим списком приоритетов.

  1. Если значение было получено из серверной части, а затем активировано, приложение использует полученное значение. Значения активированных параметров являются постоянными.
  2. Если значение не было получено из серверной части или если значения, полученные из серверной части Remote Config не были активированы, приложение использует значение по умолчанию в приложении.

    Дополнительные сведения о получении и настройке значений по умолчанию см. в разделе Загрузка значений по умолчанию для шаблона Remote Config .

  3. Если значение по умолчанию в приложении не установлено, приложение использует значение статического типа (например, 0 для int и false для boolean ).

На этом рисунке показано, как значениям параметров присваиваются приоритеты в серверной части Remote Config и в вашем приложении:

Диаграмма, показывающая поток, описанный упорядоченными списками выше.

Типы данных значений параметров

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

Поддерживаемые типы данных:

  • String
  • Boolean
  • Number
  • JSON

В пользовательском интерфейсе консоли Firebase тип данных можно выбрать из раскрывающегося списка рядом с ключом параметра. В REST API типы можно задать с помощью поля value_type в объекте параметра.

Группы параметров

Remote Config позволяет группировать параметры для более организованного пользовательского интерфейса и повышения удобства использования.

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

Вы можете создавать группы параметров с помощью консоли Firebase или REST API Remote Config . Каждая создаваемая группа параметров имеет уникальное имя в шаблоне Remote Config . При создании групп параметров имейте в виду:

  • Параметры могут быть включены только в одну группу в любой момент времени, а ключ параметра должен быть уникальным для всех параметров.
  • Имена групп параметров ограничены 256 символами.
  • Если вы используете и REST API, и консоль Firebase , убедитесь, что вся логика REST API обновлена ​​для обработки групп параметров при публикации.

Создайте или измените группы параметров с помощью консоли Firebase

Вы можете сгруппировать параметры на вкладке «Параметры» консоли Firebase . Чтобы создать или изменить группу:

  1. Выберите «Управление группами» .
  2. Установите флажки для параметров, которые вы хотите добавить, и выберите «Переместить в группу» .
  3. Выберите существующую группу или создайте новую группу, введя имя и описание и выбрав Создать новую группу . После сохранения группы ее можно будет опубликовать с помощью кнопки «Опубликовать изменения» .

Типы правил условий

В консоли Firebase поддерживаются следующие типы правил. Эквивалентные функции доступны в REST API Remote Config , как подробно описано в справочнике по условным выражениям .

Тип правила Оператор(ы) Ценности) Примечание
Приложение == Выберите из списка идентификаторы приложений, связанных с вашим проектом Firebase. Когда вы добавляете приложение в Firebase, вы вводите идентификатор пакета или имя пакета Android, которое определяет атрибут, который отображается как идентификатор приложения в правилах Remote Config .

Используйте этот атрибут следующим образом:
  • Для платформ Apple: используйте CFBundleIdentifier приложения. Вы можете найти идентификатор пакета на вкладке «Общие» для основной цели вашего приложения в Xcode.
  • Для Android: используйте applicationId приложения. Вы можете найти applicationId в файле build.gradle уровня приложения.
Версия приложения Для строковых значений:
точно совпадает,
содержит,
не содержит,
содержит регулярное выражение

Для числовых значений:
<, <=, =, !=, >, >=

Укажите версии вашего приложения, на которые вы хотите настроить таргетинг.

Прежде чем использовать это правило, вы должны использовать правило App ID , чтобы выбрать приложение Android/Apple, связанное с вашим проектом Firebase.

Для платформ Apple: используйте CFBundleShortVersionString приложения.

Примечание. Убедитесь, что ваше приложение Apple использует SDK для платформ Firebase Apple версии 6.24.0 или выше, поскольку CFBundleShortVersionString не отправляется в более ранних версиях (см. примечания к выпуску ).

Для Android: используйте версию приложения.

Сравнения строк для этого правила чувствительны к регистру. При использовании оператора регулярного выражения «точно соответствует» , «содержит» , «не содержит » или «содержит» вы можете выбрать несколько значений.

Используя оператор contains regex , вы можете создавать регулярные выражения в формате RE2 . Ваше регулярное выражение может соответствовать всей строке целевой версии или ее части. Вы также можете использовать привязки ^ и $ для соответствия началу, концу или всей целевой строке.

Номер сборки Для строковых значений:
точно совпадает,
содержит,
не содержит,
регулярное выражение

Для числовых значений:
=, ≠, >, ≥, <, ≤

Укажите целевые сборки вашего приложения.

Прежде чем использовать это правило, вы должны использовать правило App ID , чтобы выбрать приложение Apple или Android, связанное с вашим проектом Firebase.

Этот оператор доступен только для приложений Apple и Android. Он соответствует CFBundleVersion приложения для Apple и versionCode для Android. Сравнения строк для этого правила чувствительны к регистру.

При использовании оператора регулярного выражения «точно соответствует» , «содержит» , «не содержит » или «содержит» вы можете выбрать несколько значений.

Используя оператор contains regex , вы можете создавать регулярные выражения в формате RE2 . Ваше регулярное выражение может соответствовать всей строке целевой версии или ее части. Вы также можете использовать привязки ^ и $ для соответствия началу, концу или всей целевой строке.

Платформа == iOS
Андроид
Интернет
Операционная система ==

Укажите целевые операционные системы.

Прежде чем использовать это правило, вы должны использовать правило App ID , чтобы выбрать веб-приложение, связанное с вашим проектом Firebase.

Это правило оценивается как true для данного экземпляра веб-приложения, если операционная система и ее версия соответствуют целевому значению в указанном списке.
Браузер ==

Укажите браузер(ы) для таргетинга.

Прежде чем использовать это правило, вы должны использовать правило App ID , чтобы выбрать веб-приложение, связанное с вашим проектом Firebase.

Это правило считается true для данного экземпляра веб-приложения, если браузер и его версия соответствуют целевому значению в указанном списке.
Категория устройства есть, нет мобильный Это правило оценивает, является ли устройство, обращающееся к вашему веб-приложению, мобильным или немобильным (настольное или консольное). Этот тип правила доступен только для веб-приложений.
Языки находится в Выберите один или несколько языков. Это правило считается true для данного экземпляра приложения, если этот экземпляр приложения установлен на устройстве, использующем один из перечисленных языков.
Страна/регион находится в Выберите один или несколько регионов или стран. Это правило считается true для данного экземпляра приложения, если экземпляр находится в любом из перечисленных регионов или стран. Код страны устройства определяется с использованием IP-адреса устройства в запросе или кода страны, определенного Firebase Analytics (если данные Analytics передаются Firebase).
Аудитория пользователей Включает в себя хотя бы один Выберите одну или несколько аудиторий Google Analytics из списка, который вы настроили для своего проекта.

Для этого правила требуется правило App ID, чтобы выбрать приложение, связанное с вашим проектом Firebase.

Примечание. Поскольку многие аудитории Analytics определяются событиями или свойствами пользователей, которые могут основываться на действиях пользователей приложения, может потребоваться некоторое время, чтобы правило «Пользователь в аудитории» вступило в силу для данного экземпляра приложения.

Свойство пользователя Для строковых значений:
содержит,
не содержит,
точно совпадает,
содержит регулярное выражение

Для числовых значений:
=, ≠, >, ≥, <, ≤

Примечание. На клиенте для свойств пользователя можно задать только строковые значения. Для условий, в которых используются числовые операторы, Remote Config преобразует значение соответствующего пользовательского свойства в целое число или число с плавающей запятой.
Выберите из списка доступных свойств пользователя Google Analytics . Чтобы узнать, как использовать свойства пользователя для настройки приложения для конкретных сегментов вашей пользовательской базы, см. раздел Remote Config и свойства пользователя .

Дополнительные сведения о свойствах пользователя см. в следующих руководствах:

При использовании оператора регулярного выражения «точно соответствует» , «содержит» , «не содержит» или «содержит» вы можете выбрать несколько значений.

Используя оператор contains regex , вы можете создавать регулярные выражения в формате RE2 . Ваше регулярное выражение может соответствовать всей строке целевой версии или ее части. Вы также можете использовать привязки ^ и $ для соответствия началу, концу или всей целевой строке.

Примечание. Автоматически собираемые свойства пользователя недоступны при создании условий Remote Config .
Пользователь в случайном проценте Слайдер (в консоли Firebase. REST API использует операторы <= , > и between ). 0-100

Используйте это поле, чтобы применить изменение к случайной выборке экземпляров приложения (с размером выборки всего 0,0001%), используя виджет ползунка для разделения случайно перетасованных пользователей (экземпляров приложения) на группы.

Каждый экземпляр приложения постоянно сопоставляется со случайным целым или дробным числом в соответствии с начальным числом , определенным в этом проекте.

Правило будет использовать ключ по умолчанию (отображается как «Изменить начальное значение» в консоли Firebase ), если вы не измените начальное значение. Вы можете вернуть правилу использование ключа по умолчанию, очистив поле «Исходное значение» .

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

Например, чтобы создать два связанных условия, каждое из которых применяется к непересекающимся 5% пользователей приложения, вы можете настроить одно условие для соответствия проценту от 0% до 5%, а другое условие — для соответствия диапазону от 5% до 5%. 10%. Чтобы позволить некоторым пользователям случайным образом появляться в обеих группах, используйте разные начальные значения для правил в каждом условии.

Импортированный сегмент находится в Выберите один или несколько импортированных сегментов. Это правило требует настройки собственных импортированных сегментов .
Дата/Время До, После Указанная дата и время либо в часовом поясе устройства, либо в указанном часовом поясе, например «(GMT+11) Сиднейское время». Сравнивает текущее время со временем выборки устройства.
Первое открытие До, После Указанная дата и время в указанном часовом поясе.

Сопоставляет пользователей, которые впервые открывают целевое приложение в течение указанного периода времени.

Требуются следующие SDK:

  • Firebase SDK для Google Analytics
  • SDK для платформ Apple v9.0.0+ или Android SDK v21.1.1+ ( Firebase BoM v30.3.0+)
Идентификатор установки находится в Укажите один или несколько идентификаторов установки (до 50) для целевого использования. Это правило считается true для данной установки, если идентификатор этой установки находится в списке значений, разделенных запятыми.

Чтобы узнать, как получить идентификаторы установки, см. раздел Получение идентификаторов клиентов .
Пользователь существует (без оператора) Нацеливается на всех пользователей всех приложений в текущем проекте.

Используйте это правило условия, чтобы сопоставить всех пользователей в проекте, независимо от приложения или платформы.

Параметры и условия поиска

Вы можете искать ключи параметров, значения параметров и условия вашего проекта из консоли Firebase , используя поле поиска в верхней части вкладки « Параметры Remote Config .

Ограничения на параметры и условия

В проекте Firebase вы можете иметь до 2000 параметров и до 500 условий. Ключи параметров могут иметь длину до 256 символов, должны начинаться с символа подчеркивания или английской буквы (AZ, az), а также могут включать цифры. Общая длина строк значений параметров в проекте не может превышать 1 000 000 символов.

Просмотр изменений параметров и условий

Вы можете просмотреть последние изменения в шаблонах Remote Config из консоли Firebase . По каждому отдельному параметру и состоянию вы можете:

  • Просмотрите имя пользователя, который последним изменил параметр или условие.

  • Если изменение произошло в тот же день, просмотрите количество минут или часов, прошедших с момента публикации изменения в активном шаблоне Remote Config .

  • Если изменение произошло один или несколько дней назад, просмотрите дату публикации изменения в активном шаблоне Remote Config .

История изменений параметров

На странице «Параметры Remote Config в столбце «Последняя публикация» отображается последний пользователь, который изменил каждый параметр, а также дата последней публикации изменения:

  • Чтобы просмотреть метаданные изменений для сгруппированных параметров, разверните группу параметров.

  • Чтобы отсортировать данные по возрастанию или убыванию по дате публикации, щелкните метку столбца «Последняя публикация» .

История изменений условий

На странице « Условия Remote Config вы можете увидеть последнего пользователя, который изменил условие, и дату, когда он его изменил, рядом с полем «Последнее изменение» для каждого условия.

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

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