Вы можете настроить шаблоны как для клиентских, так и для серверных сценариев использования. Клиентские шаблоны предоставляются любым экземплярам приложений, реализующим клиентские 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 Admin Go SDK v4.17.0+
- Firebase Admin Java SDK v9.7.0+
При использовании консоли Firebase или API бэкэнда Remote Config вы определяете один или несколько параметров (пары ключ-значение) и задаете для этих параметров значения по умолчанию в приложении. Вы можете переопределить значения по умолчанию в приложении, определив значения параметров. Ключи и значения параметров являются строками, но значения параметров могут быть преобразованы в другие типы данных при использовании этих значений в вашем приложении.
Используя консоль Firebase , Admin SDK или REST API Remote Config , вы можете создавать новые значения по умолчанию для ваших параметров, а также условные значения, используемые для целевых групп экземпляров приложений. Каждый раз, когда вы обновляете конфигурацию в консоли Firebase , Firebase создает и публикует новую версию вашего шаблона Remote Config . Предыдущая версия сохраняется, что позволяет вам восстановить или откатить изменения по мере необходимости. Эти операции доступны вам в консоли Firebase , Firebase Admin SDK и REST API и более подробно описаны в разделе «Управление версиями шаблонов Remote Config .
В этом руководстве объясняются параметры, условия, правила, условные значения, а также порядок приоритезации различных значений параметров в бэкэнде Remote Config и в вашем приложении. Также приводятся подробные сведения о типах правил, используемых для создания условий.
Условия, правила и условные значения
Условие используется для выбора группы экземпляров приложения. Условия состоят из одного или нескольких правил, которые должны быть true , чтобы условие было true для данного экземпляра приложения. Если значение правила не определено (например, когда значение отсутствует), это правило будет иметь значение false .
Например, вы можете создать параметр, определяющий имя модели большого языка (LLM) и строку версии, и отправлять ответы от разных моделей на основе пользовательских правил обработки сигналов . В этом случае вы можете использовать стабильную версию модели в качестве значения по умолчанию для обработки большинства запросов и использовать пользовательский сигнал для отправки ответов на тестовые запросы клиентов с помощью экспериментальной модели.
Параметр может иметь несколько условных значений, использующих разные условия, и параметры могут использовать общие условия в рамках одного проекта. На вкладке «Параметры» в консоли Firebase можно просмотреть процент запросов для каждого параметра, использующего разные условия. Этот показатель отображает процент запросов за последние 24 часа, получивших каждое значение.
Приоритет значения параметра
Параметр может иметь несколько связанных с ним условных значений. Следующие правила определяют, какое значение будет получено из шаблона Remote Config и какое значение будет использовано в конкретном экземпляре приложения в определенный момент времени:
Во-первых, условные значения применяются ко всем условиям, которые оцениваются как
trueдля данного запроса клиента. Если несколько условий оцениваются какtrue, приоритет имеет первое (верхнее) из них, отображаемое в пользовательском интерфейсе консоли Firebase , и условные значения, связанные с этим условием, предоставляются при получении приложением значений из бэкэнда. Вы можете изменить приоритет условий, перетаскивая их на вкладке «Условия» .Если отсутствуют условные значения с условиями, которые оцениваются как
true, то при получении значений из бэкэнда приложением предоставляется значение по умолчанию из параметра Remote Config . Если параметр отсутствует в бэкэнде или если значение по умолчанию установлено на «Использовать значение по умолчанию в приложении» , то при получении значений приложением значение для этого параметра не предоставляется.
В вашем приложении значения параметров возвращаются методами 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 . Чтобы создать или изменить группу:
- Выберите «Управление группами» .
- Отметьте флажками параметры, которые хотите добавить, и выберите «Переместить в группу» .
- Выберите существующую группу или создайте новую, введя имя и описание, а затем выбрав «Создать новую группу» . После сохранения группы ее можно будет опубликовать, нажав кнопку «Опубликовать изменения» .
Типы правил условий
В консоли Firebase поддерживаются следующие типы правил. Аналогичные функции доступны в REST API Remote Config , как подробно описано в справочнике по условным выражениям .
| Тип правила | Оператор(ы) | Ценности) | Примечание |
| Приложение | == | Выберите из списка идентификаторов приложений (App ID) для приложений, связанных с вашим проектом Firebase. | При добавлении приложения в Firebase вы указываете идентификатор пакета или имя пакета Android, которое определяет атрибут, отображаемый как идентификатор приложения в правилах Remote Config . Используйте этот атрибут следующим образом:
|
| Версия приложения | Для строковых значений: точно совпадает, содержит, не содержит содержит регулярное выражение Для числовых значений: <, <=, =, !=, >, >= | Укажите целевую(ые) версию(и) вашего приложения. Перед использованием этого правила необходимо использовать правило App ID для выбора приложения Android/Apple, связанного с вашим проектом Firebase. | Для платформ Apple: используйте параметр CFBundleShortVersionString приложения. Примечание: Убедитесь, что ваше приложение Apple использует Firebase Apple Platforms SDK версии 6.24.0 или выше, поскольку в более ранних версиях CFBundleShortVersionString не отправляется (см. примечания к выпуску ). Для Android: используйте versionName приложения. Сравнение строк для этого правила чувствительно к регистру. При использовании регулярных выражений "точно соответствует" , "содержит" , "не содержит" или "содержит " можно выбрать несколько значений. При использовании оператора `contains` можно создавать регулярные выражения в формате RE2 . Ваше регулярное выражение может соответствовать всей целевой строке версии или её части. Также можно использовать якоря `^` и `$` для сопоставления начала, конца или всей целевой строки. |
| Номер сборки | Для строковых значений: точно совпадает, содержит, не содержит регулярное выражение Для числовых значений: =, ≠, >, ≥, <, ≤ | Укажите целевые сборки вашего приложения. Перед использованием этого правила необходимо использовать правило App ID для выбора приложения Apple или Android, связанного с вашим проектом Firebase. | Этот оператор доступен только для приложений Apple и Android. Он соответствует значению CFBundleVersion приложения для Apple и versionCode для Android. Сравнение строк для этого правила чувствительно к регистру. При использовании регулярных выражений " точно соответствует" , "содержит" , "не содержит" или "содержит " можно выбрать несколько значений. При использовании оператора `contains` можно создавать регулярные выражения в формате RE2 . Ваше регулярное выражение может соответствовать всей целевой строке версии или её части. Также можно использовать якоря `^` и `$` для сопоставления начала, конца или всей целевой строки. |
| Платформа | == | iOS Android Веб | |
| Операционная система | == | Укажите целевую(ые) операционную(ые) систему(ы). Перед использованием этого правила необходимо использовать правило App ID для выбора веб-приложения, связанного с вашим проектом Firebase. | Это правило принимает значение true для данного экземпляра веб-приложения, если операционная система и её версия соответствуют целевому значению в указанном списке. |
| Браузер | == | Укажите целевой(ые) браузер(ы). Перед использованием этого правила необходимо использовать правило App ID для выбора веб-приложения, связанного с вашим проектом Firebase. | Это правило принимает значение true для данного экземпляра веб-приложения, если браузер и его версия соответствуют целевому значению в указанном списке. |
| Категория устройства | есть, не есть | мобильный | Это правило определяет, является ли устройство, обращающееся к вашему веб-приложению, мобильным или немобильным (настольный компьютер или консоль). Этот тип правила доступен только для веб-приложений. |
| Языки | находится в | Выберите один или несколько языков. | Это правило принимает значение true для данного экземпляра приложения, если этот экземпляр приложения установлен на устройстве, использующем один из перечисленных языков. |
| Страна/Регион | находится в | Выберите один или несколько регионов или стран. | Это правило принимает значение true для данного экземпляра приложения, если этот экземпляр находится в любом из перечисленных регионов или стран. Код страны устройства определяется с использованием IP-адреса устройства в запросе или кода страны, определенного Firebase Analytics (если данные Analytics передаются в Firebase). |
| Целевая аудитория пользователей | Включает как минимум один | Выберите одну или несколько аудиторий из списка, которые вы настроили для своего проекта Google Analytics . | Для выбора приложения, связанного с вашим проектом Firebase, требуется правило App ID. Примечание: Поскольку многие аудитории Analytics определяются событиями или свойствами пользователей, которые могут основываться на действиях пользователей приложения, для применения правила «Пользователь в аудитории» к конкретному экземпляру приложения может потребоваться некоторое время. |
| Свойство пользователя | Для строковых значений: содержит, не содержит точно совпадает, содержит регулярное выражение Для числовых значений: =, ≠, >, ≥, <, ≤ Примечание: На стороне клиента для пользовательских свойств можно задавать только строковые значения. Для условий, использующих числовые операторы, Remote Config преобразует значение соответствующего пользовательского свойства в целое число или число с плавающей запятой. | Выберите из списка доступных пользовательских свойств Google Analytics . | Чтобы узнать, как использовать свойства пользователя для настройки приложения под конкретные сегменты вашей пользовательской базы, см. раздел Remote Config и свойства пользователя» . Для получения более подробной информации о свойствах пользователей см. следующие руководства: При использовании операторов регулярного выражения " точно соответствует" , "содержит" , "не содержит" или " содержит" , можно выбрать несколько значений. При использовании оператора `contains` можно создавать регулярные выражения в формате RE2 . Ваше регулярное выражение может соответствовать всей целевой строке версии или её части. Также можно использовать якоря `^` и `$` для сопоставления начала, конца или всей целевой строки. Примечание: Автоматически собираемые свойства пользователя недоступны при создании условий Remote Config . |
| Пользователь в случайном процентном соотношении | Слайдер (в консоли 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 рядом с полем «Последнее изменение » для каждого условия отображается последний пользователь, внесший изменения, и дата этих изменений.