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


Вы можете настроить шаблоны для случаев использования как клиента, так и сервера. Клиентские шаблоны обслуживаются любыми экземплярами приложений, которые реализуют клиентские 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 Admin Python SDK v6.7.0+

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

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

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

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

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

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

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

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

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

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

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

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

  2. Если нет условных значений с условиями, которые оцениваются как true , то значение по умолчанию Remote Config предоставляется, когда приложение извлекает значения из бэкэнда. Если параметр не существует в бэкэнде или если значение по умолчанию установлено на Use in-app default , то для этого параметра не предоставляется значение, когда приложение извлекает значения.

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

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

Remote Config 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 pumpkin spice season."
        }
      }
    }
  }
}

Пользовательские условия сигнала

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

Пользовательские условия сигнала доступны для следующих клиентских сред:

  • iOS: v11.8.0 или выше
  • Android: v22.1.0 или выше (Firebase BoM v33.8.0 или выше)
  • Веб: v11.2.0 или выше
  • Flutter: Flutter BoM версии 3.6.0 или выше

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

  1. Добавьте banner_image_url и banner_link в шаблон клиента Remote Config . Они представляют изображение баннера и страницу события, связанную с этим изображением.
  2. Установите пользовательские сигналы из вашего приложения со значениями city и preferred_event_category .
  3. Добавьте значения по умолчанию в шаблон Remote Config для конкретного клиента и создайте условные значения на основе пользовательских сигналов, которые вы задали на предыдущем шаге.
  4. Добавьте значения по умолчанию в шаблон Remote Config клиента и условные значения для каждого определенного вами условия.
  5. Обновите код приложения, чтобы задать и использовать пользовательские условия сигнала.

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

Пределы

При создании пользовательских условий сигнала необходимо соблюдать следующие ограничения:

  • Количество пользовательских сигналов: вы можете создать до 100 пользовательских условий сигналов.
  • Имя пользовательского сигнала: каждое имя пользовательского сигнала может содержать максимум 250 символов.
  • Значение пользовательского сигнала: Каждое значение пользовательского сигнала может содержать до 500 символов. При использовании регулярных выражений ограничение составляет 250 символов.

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

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

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

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

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

Укажите целевую версию(и) вашего приложения.

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

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

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

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

Сравнения строк для этого правила чувствительны к регистру. При использовании оператора exact matches , contains , does not contain или contains regex можно выбрать несколько значений.

При использовании оператора 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 , которые вы настроили для своего проекта.

Это правило требует правила идентификатора приложения для выбора приложения, связанного с вашим проектом Firebase.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Сравнения строк для этого правила чувствительны к регистру. При использовании оператора exact matches, contains, does not contain или contains regex можно выбрать несколько значений. При использовании оператора contains regex можно создавать регулярные выражения в формате RE2 . Ваше регулярное выражение может соответствовать всей целевой строке версии или ее части. Вы также можете использовать якоря ^ и $ для соответствия началу, концу или всей целевой строке.

Для клиентских сред поддерживаются следующие типы данных:
  • iOS: целое, двойное
  • Android: целое, длинное, двойное
  • Веб: номер

Число, представляющее номер версии(ов), которой(ым) необходимо соответствовать (например, 2.1.0).

Дополнительную информацию о пользовательских условиях сигналов и условных выражениях см. в разделах Пользовательские условия сигналов и Элементы, используемые для создания условий .

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

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