При использовании консоли Firebase или внутренних API-интерфейсов Remote Config вы определяете один или несколько параметров (пары «ключ-значение») и предоставляете значения по умолчанию для этих параметров в приложении. Вы можете переопределить значения по умолчанию в приложении, определив значения параметров на стороне сервера. Ключи параметров и значения параметров являются строками, но значения параметров могут быть преобразованы в другие типы данных, когда вы используете эти значения в своем приложении.
Используя консоль Firebase, Admin SDK или Remote Config REST API , вы можете создавать новые значения по умолчанию для ваших параметров, а также условные значения, которые используются для целевых групп экземпляров приложений. Каждый раз, когда вы обновляете свою конфигурацию в консоли Firebase, Firebase создает и публикует новую версию вашего шаблона Remote Config. Предыдущая версия сохраняется, что позволяет вам восстановить ее или выполнить откат по мере необходимости. Эти операции доступны вам через консоль Firebase, Firebase Admin SDK и REST API и более подробно описаны в версиях шаблона Manage Remote Config .
В этом руководстве объясняются параметры, условия, правила, условные значения и то, как различные значения параметров имеют приоритеты на сервере удаленной конфигурации и в вашем приложении. Он также содержит подробные сведения о типах правил, используемых для создания условий.
Условия, правила и условные значения
Условие используется для нацеливания на группу экземпляров приложения. Условия состоят из одного или нескольких правил, которые должны быть true
, чтобы условие было true
для данного экземпляра приложения. Если значение правила не определено (например, если значение недоступно), это правило будет оцениваться как false
.
Например, параметр, определяющий заставку приложения, может отображать разные изображения в зависимости от типа ОС, используя простое правило, if device_os = Android
:
Или можно использовать условие времени , чтобы контролировать, когда ваше приложение отображает специальные рекламные товары.
Параметр может иметь несколько условных значений, использующих разные условия, а параметры могут иметь общие условия в рамках проекта. На вкладке «Параметры» консоли Firebase вы можете просмотреть процент выборки для условных значений каждого параметра. Эта метрика указывает процент запросов за последние 24 часа, которые получили каждое значение.
Приоритет значения параметра
С параметром может быть связано несколько условных значений. Следующие правила определяют, какое значение извлекается с сервера удаленной конфигурации и какое значение используется в данном экземпляре приложения в определенный момент времени:
Значения параметров на стороне сервера извлекаются в соответствии со следующим списком приоритетов.
Во-первых, применяются условные значения, если они имеют условия, которые оцениваются как
true
для данного экземпляра приложения. Если несколько условий оцениваются какtrue
, первое (верхнее), показанное в пользовательском интерфейсе консоли Firebase, имеет приоритет, и условные значения, связанные с этим условием, предоставляются, когда приложение извлекает значения из серверной части. Вы можете изменить приоритет условий, перетащив их на вкладку «Условия» .Если нет условных значений с условиями, которые оцениваются как
true
, значение по умолчанию на стороне сервера предоставляется, когда приложение извлекает значения из серверной части. Если параметр не существует в серверной части или если для значения по умолчанию задано значение Use in-app default , то для этого параметра не предоставляется значение, когда приложение извлекает значения.
В вашем приложении значения параметров возвращаются методами get
в соответствии со следующим списком приоритетов.
- Если значение было получено из серверной части, а затем активировано, приложение использует полученное значение. Активированные значения параметров являются постоянными.
Если из серверной части не было получено никакого значения или если значения, полученные из серверной части Remote Config, не были активированы, приложение использует значение по умолчанию в приложении.
Дополнительные сведения о получении и настройке значений по умолчанию см. в разделе Загрузка значений шаблона Remote Config по умолчанию .
Если значение по умолчанию в приложении не задано, приложение использует значение статического типа (например,
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. Чтобы создать или изменить группу:
- Выберите Управление группами .
- Установите флажки для параметров, которые вы хотите добавить, и выберите Переместить в группу .
- Выберите существующую группу или создайте новую группу, введя имя и описание и выбрав Создать новую группу . После сохранения группы ее можно опубликовать с помощью кнопки «Опубликовать изменения» .
Создавайте группы программно
Remote Config REST API предоставляет автоматизированный способ создания и публикации групп параметров. Предполагая, что вы знакомы с REST и настроены на авторизацию запросов к API, вы можете выполнить следующие шаги для программного управления группами:
- Получить текущий шаблон
- Добавьте объекты JSON для представления групп параметров.
- Опубликуйте группы параметров с помощью 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, которое определяет атрибут, отображаемый как идентификатор приложения в правилах удаленной настройки. Используйте этот атрибут следующим образом:
|
Версия приложения | Для строковых значений: точно совпадает, содержит, не содержит, регулярное выражение Для числовых значений: =, ≠, >, ≥, <, ≤ | Укажите версии вашего приложения для таргетинга. Прежде чем использовать это правило, вы должны использовать правило идентификатора приложения , чтобы выбрать приложение 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 для данного экземпляра веб-приложения, если браузер и его версия соответствуют целевому значению в указанном списке. |
Категория устройства | это не | мобильный | Это правило оценивает, является ли устройство, обращающееся к вашему веб-приложению, мобильным или немобильным (рабочий стол или консоль). Этот тип правила доступен только для веб-приложений. |
Языки | в | Выберите один или несколько языков. | Это правило оценивается как true для данного экземпляра приложения, если этот экземпляр приложения установлен на устройстве, использующем один из перечисленных языков. |
Страна/регион | в | Выберите один или несколько регионов или стран. | Это правило оценивается как true для данного экземпляра приложения, если экземпляр находится в любом из перечисленных регионов или стран. Код страны устройства определяется с помощью IP-адреса устройства в запросе или кода страны, определенного Firebase Analytics (если данные Analytics передаются Firebase). |
Аудитория пользователей | Включает как минимум один | Выберите одну или несколько из списка аудиторий Google Analytics, которые вы настроили для своего проекта. | Для этого правила требуется правило идентификатора приложения, чтобы выбрать приложение, связанное с вашим проектом Firebase. Примечание. Поскольку многие аудитории Google Analytics определяются событиями или свойствами пользователей, которые могут быть основаны на действиях пользователей приложения, может потребоваться некоторое время, чтобы правило «Пользователь в аудитории» вступило в силу для данного экземпляра приложения. |
Свойство пользователя | Для строковых значений: содержит, не содержит, точно совпадает, регулярное выражение Для числовых значений: =, ≠, >, ≥, <, ≤ Примечание. На клиенте для свойств пользователя можно задавать только строковые значения. Для условий, использующих числовые операторы, Remote Config преобразует значение соответствующего пользовательского свойства в целое число или число с плавающей запятой. | Выберите из списка доступных свойств пользователя Google Analytics. | Чтобы узнать, как можно использовать свойства пользователя для настройки приложения для очень специфических сегментов вашей пользовательской базы, см. раздел Remote Config и свойства пользователя . Дополнительные сведения о свойствах пользователей см. в следующих руководствах: При использовании оператора точно соответствует , содержит , не содержит или оператора регулярного выражения можно выбрать несколько значений. При использовании оператора регулярного выражения вы можете создавать регулярные выражения в формате RE2 . Ваше регулярное выражение может соответствовать всей строке целевой версии или ее части. Вы также можете использовать привязки ^ и $ для соответствия началу, концу или всей целевой строке. Примечание. Автоматически собираемые пользовательские свойства в настоящее время недоступны при создании условий Remote Config. |
Пользователь в случайном проценте | Ползунок (в консоли Firebase. REST API использует операторы <= , > и between ). | 0-100 | Используйте это поле, чтобы применить изменение к случайной выборке экземпляров приложения (с размерами выборки не более 0,0001%), используя виджет ползунка для сегментации случайно перемешанных пользователей (экземпляров приложения) на группы. Каждый экземпляр приложения постоянно сопоставляется со случайным целым или дробным числом в соответствии с начальным числом , определенным в этом проекте. Правило будет использовать ключ по умолчанию (отображаемый как Edit seed в консоли Firebase), если вы не измените начальное значение. Вы можете вернуть правило к использованию ключа по умолчанию, очистив поле Seed . Чтобы последовательно обращаться к одним и тем же экземплярам приложений в заданных процентных диапазонах, используйте одно и то же начальное значение для разных условий. Или выберите новую случайно назначенную группу экземпляров приложения для заданного процентного диапазона, указав новое начальное значение. Например, чтобы создать два связанных условия, каждое из которых применяется к неперекрывающимся 5% пользователей приложения, вы можете настроить одно условие для соответствия проценту от 0% до 5%, а другое условие — для соответствия диапазону от 5% до 10%. Чтобы разрешить некоторым пользователям случайным образом появляться в обеих группах, используйте разные начальные значения для правил в каждом условии. | Импортированный сегмент | в | Выберите один или несколько импортированных сегментов. | Это правило требует настройки пользовательских импортированных сегментов . |
Дата/время | До после | Указанная дата и время либо в часовом поясе устройства, либо в указанном часовом поясе, например "(GMT+11) Сиднейское время". | Сравнивает текущее время со временем выборки устройства. |
Первый открытый | До после | Указанная дата и время в указанном часовом поясе. | Соответствует пользователям, которые первыми открывают целевое приложение в указанном временном диапазоне. Требуются следующие SDK:
|
Идентификатор установки | в | Укажите один или несколько идентификаторов установки (до 50) для назначения. | Это правило оценивается как true для данной установки, если идентификатор этой установки находится в списке значений, разделенных запятыми.Чтобы узнать, как получить идентификаторы установки, см. раздел Получение идентификаторов клиентов . |
Пользователь существует | (без оператора) | Нацелены на всех пользователей всех приложений в текущем проекте. | Используйте это правило условия, чтобы сопоставить всех пользователей в проекте, независимо от приложения или платформы. |
Параметры и условия поиска
Вы можете искать ключи параметров вашего проекта, значения параметров и условия из консоли Firebase , используя поле поиска в верхней части вкладки «Параметры удаленной конфигурации».
Ограничения на параметры и условия
В проекте Firebase у вас может быть до 2000 параметров и до 500 условий. Ключи параметров могут иметь длину до 256 символов, должны начинаться с символа подчеркивания или латинской буквы (AZ, az), а также могут включать цифры. Общая длина строк значений параметров в проекте не может превышать 1 000 000 символов.
Просмотр изменений параметров и условий
Вы можете просмотреть последние изменения в шаблонах Remote Config из консоли Firebase . Для каждого отдельного параметра и условия вы можете:
Просмотрите имя пользователя, который последним изменил параметр или условие.
Если изменение произошло в тот же день, просмотрите количество минут или часов, прошедших с момента публикации изменения в активном шаблоне Remote Config.
Если изменение произошло один или несколько дней назад, просмотрите дату, когда изменение было опубликовано в активном шаблоне Remote Config.
Обновления параметров
На странице «Параметры удаленной конфигурации» в столбце «Последняя публикация» отображается последний пользователь, изменивший каждый параметр, и дата последней публикации изменения:
Чтобы просмотреть измененные метаданные для сгруппированных параметров, разверните группу параметров.
Для сортировки по возрастанию или убыванию по дате публикации щелкните метку столбца «Последняя публикация» .
Обновления условий
На странице «Условия удаленной настройки» вы можете увидеть последнего пользователя, изменившего условие, и дату его изменения рядом с полем «Последнее изменение» под каждым условием.
Следующие шаги
Чтобы начать настройку проекта Firebase, см. статью Настройка проекта Firebase Remote Config .