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

Вы можете настроить шаблоны для вариантов использования как клиента, так и сервера. Шаблоны клиентов предоставляются любым экземплярам приложений, которые реализуют клиентские 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 и более подробно описаны в разделе «Управление версиями шаблонов удаленной конфигурации» .

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

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

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

Например, параметр, определяющий заставку приложения, может отображать разные изображения в зависимости от типа ОС, используя простое правило if device_os = Android :

Снимок экрана параметра splash_page в консоли Firebase, показывающий его значение по умолчанию для iOS и условное значение для Android.

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

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

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

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

Значения параметров выбираются в соответствии со следующим списком приоритетов.

  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. Выберите существующую группу или создайте новую группу, введя имя и описание и выбрав Создать новую группу . После сохранения группы ее можно будет опубликовать с помощью кнопки «Опубликовать изменения» .

Создавайте группы программно

REST API удаленной настройки предоставляет автоматизированный способ создания и публикации групп параметров. Предполагая, что вы знакомы с REST и настроены на авторизацию запросов к API, вы можете выполнить следующие шаги для программного управления группами:

  1. Получить текущий шаблон
  2. Добавьте объекты JSON для представления групп параметров.
  3. Опубликуйте группы параметров с помощью запроса HTTP PUT.

parameterGroups содержит групповые ключи с вложенным описанием и списком сгруппированных параметров. Обратите внимание, что каждый групповой ключ должен быть глобально уникальным.

Например, вот выдержка из версии шаблона, в которой в группу параметров «новое меню» добавлен один параметр pumpkin_spice_season :

{
  "parameters": {},
  "version": {
    "versionNumber": "1",

    …


  },
  "parameterGroups": {
    "new menu": {
      "description": "New Menu",
      "parameters": {
        "pumpkin_spice_season": {
          "defaultValue": {
            "value": "true"
          },
          "description": "Whether it's currently pumpkin spice season."
        }
      }
    }
  }
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Обновления параметров

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

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

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

Обновления условий

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

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

Чтобы начать настройку проекта Firebase, см. раздел Настройка проекта удаленной настройки Firebase .