Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Справочник по условным выражениям 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 », « PINK », «ГОЛУБОЙ_ОРАНЖЕВЫЙ», « GREEN », « CYAN », « DEEP_ORANGE », « ORANGE », « LIME », « INDIGO 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