Check out what’s new from Firebase at Google I/O 2022. Learn more

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

На этом рисунке показано, как значения параметров расставляются по приоритетам в бэкэнде 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 currently pumpkin spice season."
        }
      }
    }
  }
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Это правило оценивается как true для данного экземпляра веб-приложения, если браузер и его версия соответствуют целевому значению в указанном списке.
Дата/Время <=, > Указанная дата и время либо в часовом поясе устройства, либо в указанном часовом поясе, например "(GMT+11) Сиднейское время". Сравнивает текущее время со временем выборки устройства.
Пользователь в случайном процентиле <=, > 0-100

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

Каждый экземпляр приложения постоянно сопоставляется со случайным целым или дробным числом в соответствии с ключом , определенным в этом проекте. Правило будет использовать ключ по умолчанию (отображаемый как DEF в консоли Firebase), если вы не выберете или не создадите другой ключ. Вы можете вернуть правило к использованию ключа по умолчанию, сняв флажок Рандомизировать пользователей с использованием этого ключа . Вы можете использовать один ключ для правил, чтобы последовательно обращаться к одним и тем же экземплярам приложений в заданных процентных диапазонах. Или вы можете выбрать новую случайно назначенную группу экземпляров приложения для заданного процентного диапазона, создав новый ключ.

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

Пользователь в аудитории == Выберите одну или несколько из списка аудиторий Google Analytics, которые вы настроили для своего проекта.

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

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

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

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

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

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

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

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

Примечание. Автоматически собираемые пользовательские свойства в настоящее время недоступны при создании условий Remote Config.
Импортированный сегмент == Выберите один или несколько импортированных сегментов. Это правило требует настройки пользовательских импортированных сегментов .
Идентификатор установки == Укажите один или несколько идентификаторов установки (до 50) для назначения. Это правило оценивается как true для данной установки, если идентификатор этой установки находится в списке значений, разделенных запятыми.

Чтобы узнать, как получить идентификаторы установки, см. раздел Получение идентификаторов клиентов .

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

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

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

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

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

Чтобы начать настройку проекта Firebase, см . статью Настройка проекта Firebase Remote Config .