Справочник по условным выражениям 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