Справочник по условным выражениям Remote Config

На этой странице содержится справочная информация по построению условных выражений с использованием серверных API Remote Config или консоли Firebase . Дополнительные сведения о настройке и использовании серверных API см. в разделе Программное изменение Remote Config .

Элементы, используемые для создания условий

REST API Remote Config поддерживает те же элементы, которые вы можете использовать для создания условий при настройке Remote Config с помощью консоли Firebase:

Элемент Описание
&&

Используется для создания логического «и» элементов, если для условия используется более одного элемента. Если элемент используется в синтаксисе REST без && , этот элемент рассматривается как условие.

Примечание. До и после амперсандов необходим пробел. Например: element1 && element2 .

app.build

Возвращает значение TRUE или FALSE в зависимости от значения номера сборки приложения.

Примечание. Доступно только на устройствах Apple и Android. Для Apple используйте значение CFBundleVersion , а для Android — значение versionCode .

app.version

Возвращает значение TRUE или FALSE в зависимости от значения номера версии приложения.

Примечание. Для устройств 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

Элемент, основанный на операционной системе, в которой работает приложение. Возвращает значение TRUE , если ОС и версия ОС соответствуют указанной цели.

Примечание. Доступно только для веб-приложений.

app.browserAndVersion

Элемент, основанный на браузере, в котором запущено приложение. Возвращает значение TRUE , если браузер и версия браузера соответствуют указанной цели.

Примечание. Доступно только для веб-приложений.

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%).

Одноэлементное условие содержит три поля:

  1. Произвольно определенное name (до 100 символов).
  2. Условное выражение, которое имеет значение TRUE или FALSE и состоит из элементов, показанных выше.
  3. (Необязательно) tagColor , который может быть « BLUE », « BROWN », « CYAN », « DEEP_ORANGE », « GREEN », « INDIGO », « LIME », « ORANGE », « PINK », « PURPLE » или « TEAL ». Цвет не чувствителен к регистру и влияет только на то, как условия отображаются в консоли Firebase .

Поддерживаемые операторы

Например, app.build.notContains([123, 456]) возвращает TRUE если фактическая сборка приложения — 123 или 492, но возвращает FALSE если фактическая сборка приложения — 999. Например, app.version.notContains([123, 456]) возвращает TRUE если фактическая версия приложения — 123 или 492, но возвращает FALSE если фактическая версия приложения — 999.
Элемент Поддерживаемые операторы Описание
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

Чтобы настроить определенный диапазон, вы можете использовать оператор between . Чтобы настроить диапазон пользователей от 20 до 60, используя начальное значение по умолчанию :

percent between 20 and 60

Чтобы настроить диапазон пользователей от 60 до 80 с помощью пользовательского начального числа:

percent('seedName') between 60 and 80