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

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

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

Remote Config REST API поддерживает те же элементы, которые вы можете использовать для создания условий при настройке 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 ID.
app.audiences Элемент, который оценивается как TRUE или FALSE в зависимости от присутствия или отсутствия пользователя в одной или нескольких аудиториях Firebase Analytics .
app.firstOpenTimestamp Элемент, основанный на первом запуске приложения пользователем, полученный из события first_open Google Analytics. Использует формат даты 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 alpha-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