На этой странице содержится справочная информация по построению условных выражений с использованием серверных API Remote Config или консоли Firebase . Дополнительные сведения о настройке и использовании серверных API см. в разделе Программное изменение Remote Config .
Элементы, используемые для создания условий
REST API Remote Config поддерживает те же элементы, которые вы можете использовать для создания условий при настройке Remote Config с помощью консоли Firebase:
Элемент | Описание |
---|---|
&& | Используется для создания логического «и» элементов, если для условия используется более одного элемента. Если элемент используется в синтаксисе REST без Примечание. До и после амперсандов необходим пробел. Например: |
app.build | Возвращает значение Примечание. Доступно только на устройствах Apple и Android. Для Apple используйте значение CFBundleVersion , а для Android — значение versionCode . |
app.version | Возвращает значение Примечание. Для устройств Android используйте значение versionName , а для устройств Apple — значение CFBundleShortVersionString . |
app.id | Элемент, основанный на идентификаторе приложения Firebase. |
app.audiences | Элемент, который оценивается как TRUE или FALSE в зависимости от присутствия или отсутствия пользователя в одной или нескольких аудиториях Firebase Analytics . |
app.firstOpenTimestamp | Элемент, основанный на первом запуске приложения пользователем, полученном из события Google Analytics first_open . Использует формат даты ISO с возможностью указать фиксированный часовой пояс; например, app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles') . Если часовой пояс не указан, используется GMT. |
app.userProperty | Элемент, который оценивается как TRUE или FALSE на основе числового или строкового значения свойства пользователя Firebase Analytics . |
app.operatingSystemAndVersion | Элемент, основанный на операционной системе, в которой работает приложение. Возвращает значение Примечание. Доступно только для веб-приложений. |
app.browserAndVersion | Элемент, основанный на браузере, в котором запущено приложение. Возвращает значение Примечание. Доступно только для веб-приложений. |
app.firebaseInstallationId | Элемент, основанный на идентификаторах конкретных установок устройств. Возвращает значение TRUE если идентификатор установки соответствует одному из указанных идентификаторов установки. |
device.country | Элемент, основанный на регионе/стране, в которой находится устройство, с использованием стандарта ISO 3166-1 альфа-2 (например, США или Великобритания). Возвращает значение TRUE , если страна соответствует ожидаемому коду страны. |
device.dateTime | Элемент, основанный на времени последней выборки, выполненной устройством. Использует формат даты ISO с возможностью указать фиксированный часовой пояс; например, dateTime('2017-03-22T13:39:44', 'America/Los_Angeles') . |
device.language | Элемент на основе языка, выбранного на устройстве. Язык представлен с помощью языкового тега IETF, например es-ES, pt-BR или en-US. Возвращает значение TRUE , если язык соответствует ожидаемому коду языка. |
device.os | Элемент на основе операционной системы, используемой на устройстве (Apple или Android). Возвращает значение TRUE , если операционная система устройства соответствует ожидаемому типу. |
percent | Возвращает значение TRUE на основе включения пользователя в случайно назначенный дробный процент (с размером выборки всего 0,000001%). |
Одноэлементное условие содержит три поля:
- Произвольно определенное
name
(до 100 символов). - Условное выражение, которое имеет значение
TRUE
илиFALSE
и состоит из элементов, показанных выше. - (Необязательно)
tagColor
, который может быть «BLUE
», «BROWN
», «CYAN
», «DEEP_ORANGE
», «GREEN
», «INDIGO
», «LIME
», «ORANGE
», «PINK
», «PURPLE
» или «TEAL
». Цвет не чувствителен к регистру и влияет только на то, как условия отображаются в консоли Firebase .
Поддерживаемые операторы
Элемент | Поддерживаемые операторы | Описание |
---|---|---|
app.audiences | .inAtLeastOne([...]) | Возвращает TRUE если фактическая аудитория соответствует хотя бы одному имени аудитории в списке.Например: app.audiences.inAtLeastOne(['Audience 1', 'Audience 2']) |
app.audiences | .notInAtLeastOne([...]) | Возвращает TRUE если фактическая аудитория не соответствует хотя бы одному имени аудитории в списке. |
app.audiences | .inAll([...]) | Возвращает TRUE , если фактическая аудитория является членом каждой аудитории в списке. |
app.audiences | .notInAll([...]) | Возвращает TRUE если фактическая аудитория не является членом какой-либо аудитории в списке. |
app.firstOpenTimestamp | <=, > | Сравнивает время события first_open с указанным временем в условии и возвращает TRUE или FALSE в зависимости от оператора.Пример использования: app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles') .Чтобы указать диапазон: app.firstOpenTimestamp >= ('2022-11-01T00:00:00') && app.firstOpenTimestamp < ('2022-12-01T00:00:00') Если часовой пояс не указан, используется GMT. |
app.userProperty | < , <= , == , != , >= , > | Возвращает TRUE , если фактическое свойство пользователя численно сравнивается со значением, указанным в соответствии с оператором. |
app.userProperty | .contains([...]) | Возвращает TRUE если какое-либо из целевых значений является подстрокой фактического свойства пользователя. |
app.userProperty | .notContains([...]) | Возвращает TRUE если ни одно из целевых значений не является подстрокой фактического свойства пользователя. |
app.userProperty | .exactlyMatches([...]) | Возвращает TRUE , если фактическое свойство пользователя точно соответствует (с учетом регистра) любому из целевых значений в списке. |
app.userProperty | .matches([...]) | Возвращает TRUE если какое-либо целевое регулярное выражение в списке соответствует подстроке или полному фактическому значению. Чтобы принудительно сопоставить всю строку, добавьте к регулярному выражению предисловие «^» и суффикс «$». Использует синтаксис RE2 . |
app.id | == | Возвращает TRUE , если указанное значение соответствует идентификатору приложения приложения. |
app.build | < , <= , == , != , >= , > | Возвращает TRUE , если фактическая сборка приложения численно сравнивается со значением, указанным в соответствии с оператором. |
app.build | .contains([...]) | Возвращает TRUE если какое-либо из целевых значений является подстрокой фактической сборки приложения — например, «a» и «bc» являются подстроками «abc». |
app.build | .notContains([...]) | Возвращает TRUE если ни одно из целевых значений не является подстрокой фактической сборки приложения. | Например, app.build | .exactlyMatches([...]) | Возвращает TRUE если фактическая сборка приложения точно соответствует любому из целевых значений в списке. |
app.build | .matches([...]) | Возвращает TRUE если какое-либо целевое регулярное выражение в списке соответствует подстроке или полному фактическому значению. Чтобы принудительно сопоставить всю строку, добавьте к регулярному выражению предисловие «^» и суффикс «$». Использует синтаксис RE2 . |
app.version | < , <= , == , != , >= , > | Возвращает TRUE , если фактическая версия приложения численно сравнивается со значением, указанным в соответствии с оператором. |
app.version | .contains([...]) | Возвращает TRUE если какое-либо из целевых значений является подстрокой фактической версии приложения, например «a» и «bc» являются подстроками «abc». |
app.version | .notContains([...]) | Возвращает TRUE если ни одно из целевых значений не является подстрокой фактической версии приложения. | Например,
app.version | .exactlyMatches([...]) | Возвращает TRUE если фактическая версия приложения точно соответствует любому из целевых значений в списке. |
app.version | .matches([...]) | Возвращает TRUE если какое-либо целевое регулярное выражение в списке соответствует подстроке фактического значения или всему его значению. Чтобы принудительно сопоставить всю строку, добавьте к регулярному выражению предисловие «^» и суффикс «$». Использует синтаксис RE2 . |
app.operatingSystemAndVersion | .inOne([...]) | Возвращает TRUE , если ОС и версия соответствуют любому из целевых значений в списке.Например: app.operatingSystemAndVersion.inOne([operatingSystemName('Macintosh').version.==('10.15')]) |
app.browserAndVersion | .inOne([...]) | Возвращает TRUE если браузер и версия соответствуют любому из целевых значений в списке.Например: app.browserAndVersion.inOne([browserName('Chrome').anyVersion]) |
app.firebaseInstallationId | in [...] | Возвращает TRUE , если идентификатор установки соответствует любому указанному в списке. Пример использования: app.firebaseInstallationId in ['eyJhbGciOiJFUzI1N_iIs5', 'eapzYQai_g8flVQyfKoGs7'] |
device.country | in [...] | Возвращает TRUE если страна устройства соответствует любой стране, указанной в списке. Пример использования: device.country in ['gb', 'us'] . Код страны устройства определяется с использованием IP-адреса устройства в запросе или кода страны, определенного Firebase Analytics (если данные Analytics передаются Firebase). |
device.dateTime | <= , > | Сравнивает текущее время с целевым временем условия и оценивает его как TRUE или FALSE в зависимости от оператора. Пример использования: dateTime < dateTime('2017-03-22T13:39:44') . |
device.language | in [...] | Возвращает TRUE если какой-либо из языков приложения соответствует языку в списке. Пример использования: device.language in ['en-UK', 'en-US'] . |
device.os | == , != | Возвращает TRUE , если операционная система устройства сравнивается со значением в этом поле, соответствующим оператору. |
percent | <= , > , between | Возвращает TRUE , если значение в поле percent сравнивается со значением, которое было случайно присвоено в соответствии с оператором.Вы можете указать начальное значение для выбора новой случайно назначенной группы экземпляров приложения для заданного процентного диапазона, как описано в разделе Типы правил условий . Для этого укажите имя начального числа перед оператором, как в следующем примере: percent('keyName') <= 10 Чтобы настроить определенный диапазон, вы можете использовать оператор percent between 20 and 60 Чтобы настроить диапазон пользователей от 60 до 80 с помощью пользовательского начального числа: percent('seedName') between 60 and 80 |