Вы можете настроить шаблоны как для клиентских, так и для серверных приложений. Клиентские шаблоны передаются любым экземплярам приложений, реализующим клиентские 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 вы определяете один или несколько параметров (пар «ключ-значение») и указываете для них значения по умолчанию в приложении. Вы можете переопределить значения по умолчанию в приложении, определив значения параметров. Ключи и значения параметров являются строками, но значения параметров могут быть преобразованы в другие типы данных при использовании этих значений в приложении.
Используя консоль Firebase , Admin SDK или REST API Remote Config REST API) , вы можете создавать новые значения по умолчанию для параметров, а также условные значения, используемые для целевых групп экземпляров приложения. Каждый раз при обновлении конфигурации в консоли Firebase , Firebase создает и публикует новую версию шаблона Remote Config . Предыдущая версия сохраняется, что позволяет при необходимости восстановить ее или откатить. Эти операции доступны в консоли Firebase , Firebase Admin SDK и REST API и более подробно описаны в разделе Управление версиями шаблона Remote Config .
В этом руководстве объясняются параметры, условия, правила, условные значения и то, как значения различных параметров приоритизируются в бэкенде Remote Config и в вашем приложении. Также подробно описываются типы правил, используемых для создания условий.
Условия, правила и условные значения
Условие используется для определения группы экземпляров приложения. Условия состоят из одного или нескольких правил, все из которых должны быть true
, чтобы условие было true
для данного экземпляра приложения. Если значение правила не определено (например, если значение отсутствует), это правило будет иметь значение false
.
Например, параметр, определяющий стартовую страницу приложения, может отображать разные изображения в зависимости от типа ОС, используя правило if device_os = Android
:
Или можно использовать временное условие для управления отображением в приложении специальных рекламных материалов.
Параметр может иметь несколько условных значений, использующих разные условия, и параметры могут использовать одни и те же условия в рамках проекта. На вкладке «Параметры» консоли Firebase можно просмотреть процент выборки для условных значений каждого параметра. Эта метрика показывает процент запросов за последние 24 часа, получивших каждое значение.
Приоритет значения параметра
С параметром может быть связано несколько условных значений. Следующие правила определяют, какое значение извлекается из шаблона Remote Config и какое значение используется в данном экземпляре приложения в конкретный момент времени:
Во-первых, условные значения применяются к любым условиям, которые оцениваются как
true
для данного клиентского запроса. Если несколько условий оцениваются какtrue
, приоритет имеет первое (верхнее) условие, отображаемое в интерфейсе консоли Firebase , и условные значения, связанные с этим условием, предоставляются при получении приложением данных из бэкэнда. Вы можете изменить приоритет условий, перетаскивая их на вкладке «Условия» .Если условные значения с условиями, которые оцениваются как
true
, отсутствуют, при получении значений из бэкенда приложением предоставляется значение по умолчанию Remote Config . Если параметр отсутствует в бэкенде или для него установлено значение по умолчанию Use in-app default , то при получении значений приложением значение для этого параметра не предоставляется.
В вашем приложении значения параметров возвращаются методами get
в соответствии со следующим списком приоритетов.
- Если значение было извлечено из бэкенда, а затем активировано, приложение использует извлеченное значение. Активированные значения параметров являются постоянными.
Если из бэкэнда не было извлечено ни одного значения или если значения, извлеченные из бэкэнда Remote Config не были активированы, приложение использует встроенное в приложение значение по умолчанию.
Дополнительную информацию о получении и настройке значений по умолчанию см. в разделе Загрузка шаблонов Remote Config по умолчанию .
Если в приложении не установлено значение по умолчанию, приложение использует статическое значение типа (например,
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 . Чтобы создать или изменить группу:
- Выберите Управление группами .
- Установите флажки для параметров, которые вы хотите добавить, и выберите Переместить в группу .
- Выберите существующую группу или создайте новую, введя имя и описание, а затем выбрав «Создать новую группу» . После сохранения группы её можно опубликовать с помощью кнопки «Опубликовать изменения» .
Создавайте группы программно
REST API Remote Config предоставляет автоматизированный способ создания и публикации групп параметров. Если вы знакомы с 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 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 или выше
Например, предположим, что вы работаете над приложением для продажи билетов и хотите разместить баннер на главном экране. Вы можете использовать клиентские условия сигналов, чтобы персонализировать эти баннеры в зависимости от местоположения и интересов пользователя. Можно сделать следующее:
- Добавьте параметры
banner_image_url
иbanner_link
в шаблон клиента Remote Config . Они представляют изображение баннера и страницу мероприятия, связанную с этим изображением. - Установите пользовательские сигналы из вашего приложения со значениями
city
иpreferred_event_category
. - Добавьте значения по умолчанию в шаблон Remote Config клиента и создайте условные значения на основе пользовательских сигналов, которые вы задали на предыдущем шаге.
- Добавьте значения по умолчанию в шаблон Remote Config клиента, а также условные значения для каждого определенного вами условия.
- Обновите код приложения, чтобы задать и использовать пользовательские условия сигнала.
Теперь ваше приложение может загружать соответствующие banner_image_url
и banner_link
при получении этих параметров с сервера Remote Config .
Пределы
При создании пользовательских условий сигнала необходимо соблюдать следующие ограничения:
- Количество пользовательских сигналов: вы можете создать до 100 пользовательских условий сигналов.
- Имя пользовательского сигнала: Имя каждого пользовательского сигнала может содержать не более 250 символов.
- Значение пользовательского сигнала: Каждое значение пользовательского сигнала может содержать до 500 символов. При использовании регулярных выражений ограничение составляет 250 символов.
Типы правил условий
В консоли Firebase поддерживаются следующие типы правил. Аналогичные функции доступны в REST API Remote Config , как подробно описано в справочнике по условным выражениям .
Тип правила | Оператор(ы) | Ценности) | Примечание |
Приложение | == | Выберите из списка идентификаторов приложений, связанных с вашим проектом Firebase. | При добавлении приложения в Firebase вы вводите идентификатор пакета или имя пакета Android, которое определяет атрибут, отображаемый как идентификатор приложения в правилах Remote Config . Используйте этот атрибут следующим образом:
|
Версия приложения | Для строковых значений: точно совпадает, содержит, не содержит, содержит регулярное выражение Для числовых значений: <, <=, =, !=, >, >= | Укажите целевую(ые) версию(и) вашего приложения. Перед использованием этого правила необходимо использовать правило App ID , чтобы выбрать приложение Android/Apple, связанное с вашим проектом Firebase. | Для платформ Apple: используйте CFBundleShortVersionString приложения. Примечание: Убедитесь, что ваше приложение Apple использует Firebase Apple platform SDK версии 6.24.0 или выше, так как CFBundleShortVersionString не отправляется в более ранних версиях (см. заметки о выпуске ). Для Android: используйте версию приложения. Сравнение строк для этого правила чувствительно к регистру. При использовании операторов регулярного выражения exact matches , contains , does not contain или contains можно выбрать несколько значений. Используя оператор 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 . |
Пользователь в случайном процентном соотношении | Slider (в консоли Firebase. REST API использует операторы <= , > и between ). | 0-100 | Используйте это поле, чтобы применить изменение к случайной выборке экземпляров приложения (с размером выборки всего 0,0001%), используя виджет-ползунок для сегментации случайно перемешанных пользователей (экземпляров приложения) в группы. Каждый экземпляр приложения постоянно сопоставляется со случайным целым или дробным числом в соответствии с начальным значением , определенным в данном проекте. Правило будет использовать ключ по умолчанию (отображается как «Изменить начальное значение» в консоли Firebase ), если вы не измените начальное значение. Вы можете вернуть правило к использованию ключа по умолчанию, очистив поле «Начальное значение» . Чтобы последовательно обрабатывать одни и те же экземпляры приложений в заданных процентных диапазонах, используйте одно и то же начальное значение для всех условий. Или выберите новую случайно назначенную группу экземпляров приложений для заданного процентного диапазона, указав новое начальное значение. Например, чтобы создать два связанных условия, каждое из которых будет применяться к 5% пользователей приложения, не перекрывающимся друг с другом, можно настроить одно условие на соответствие процентному значению от 0% до 5%, а другое — на соответствие диапазону от 5% до 10%. Чтобы некоторые пользователи случайным образом попадали в обе группы, используйте разные начальные значения для правил в каждом условии. |
Импортный сегмент | находится в | Выберите один или несколько импортированных сегментов. | Это правило требует настройки пользовательских импортированных сегментов . |
Дата/Время | До, После | Указанная дата и время либо в часовом поясе устройства, либо в указанном часовом поясе, например «(GMT+11) время Сиднея». | Сравнивает текущее время со временем выборки устройства. |
Первый открытый | До, После | Указанная дата и время в указанном часовом поясе. | Сопоставляет пользователей, которые впервые открывают целевое приложение в течение указанного периода времени. Требуются следующие SDK:
|
Идентификатор установки | находится в | Укажите один или несколько идентификаторов установки (до 50) для настройки. | Это правило оценивается как true для данной установки, если идентификатор этой установки содержится в списке значений, разделенных запятыми.Информацию о том, как получить идентификаторы установки, см. в разделе Получение идентификаторов клиента . |
Пользователь существует | (без оператора) | Распространяется на всех пользователей всех приложений в текущем проекте. | Используйте это правило условия для сопоставления всех пользователей в проекте, независимо от приложения или платформы. |
Пользовательский сигнал | Для строковых значений: содержит, не содержит, точно совпадает, содержит регулярное выражение Для числовых значений: =, ≠, >, ≥, <, ≤ Для значений версии: =, ≠, >, ≥, <, ≤ | Сравнения строк для этого правила чувствительны к регистру. При использовании операторов регулярного выражения «точно соответствует», «содержит», «не содержит» или «содержит» можно выбрать несколько значений. При использовании оператора регулярного выражения «содержит» можно создавать регулярные выражения в формате RE2 . Регулярное выражение может соответствовать всей целевой строке версии или её части. Вы также можете использовать якоря ^ и $ для сопоставления начала, конца или всей целевой строки. Для клиентских сред поддерживаются следующие типы данных:
Число, представляющее номер(а) версии, которые необходимо сопоставить (например, 2.1.0). | Дополнительную информацию о пользовательских условиях сигналов и условных выражениях см. в разделах Пользовательские условия сигналов и Элементы, используемые для создания условий . |
Параметры и условия поиска
Вы можете выполнить поиск ключей параметров, значений параметров и условий вашего проекта из консоли Firebase , используя поле поиска в верхней части вкладки «Параметры Remote Config .
Ограничения на параметры и условия
В проекте Firebase можно создать до 3000 параметров и до 2000 условий. Ключи параметров могут содержать до 256 символов, должны начинаться с символа подчёркивания или английской буквы (AZ, az) и могут содержать цифры. Общая длина строк значений параметров в проекте не может превышать 1 000 000 символов.
Просмотр изменений параметров и условий
Вы можете просмотреть последние изменения в шаблонах Remote Config в консоли Firebase . Для каждого отдельного параметра и условия вы можете:
Просмотр имени пользователя, который последним изменил параметр или условие.
Если изменение произошло в течение того же дня, просмотрите количество минут или часов, прошедших с момента публикации изменения в активном шаблоне Remote Config .
Если изменение произошло один или несколько дней назад, просмотрите дату публикации изменения в активном шаблоне Remote Config .
История изменений параметров
На странице «Параметры Remote Config в столбце «Последняя публикация» отображается последний пользователь, изменивший каждый параметр, и последняя дата публикации изменения:
Чтобы просмотреть метаданные изменений для сгруппированных параметров, разверните группу параметров.
Чтобы отсортировать по дате публикации в порядке возрастания или убывания, щелкните заголовок столбца Последняя публикация .
История изменений условий
На странице «Условия Remote Config вы можете увидеть последнего пользователя, изменившего условие, и дату его изменения рядом с полем «Последнее изменение» для каждого условия.