app.audiences
|
.inAtLeastOne([...])
|
Returns
TRUE
if the actual audience matches at least one
audience name in the list.
For example:
app.audiences.inAtLeastOne(['Audience 1', 'Audience 2'])
|
app.audiences
|
.notInAtLeastOne([...])
|
Returns
TRUE
if the actual audience does not match at least
one audience name in the list.
|
app.audiences
|
.inAll([...])
|
Returns
TRUE
if the actual audience is a member of every
audience name in the list.
|
app.audiences
|
.notInAll([...])
|
Returns
TRUE
if the actual audience is not a member of any
audience in the list.
|
app.firstOpenTimestamp
|
<=,>=,> |
Compares the time of the
first_open
event with the specified
time in the condition and returns
TRUE
or
FALSE
based on the operator.
Sample usage:
app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles')
.
To specify a range:
app.firstOpenTimestamp >= ('2022-11-01T00:00:00') && app.firstOpenTimestamp
<>
If no time zone is specified, GMT is used.
|
app.userProperty
|
,
<> ,
==
,
!=
,
>=
,
>
|
Returns
TRUE
if the actual user property numerically compares
to the value specified in a way that matches the operator.
|
app.userProperty
|
.contains([...])
|
Returns
TRUE
if any of the target values is a substring of
the actual user property.
|
app.userProperty
|
.notContains([...])
|
Returns
TRUE
if none of the target values is a substring of
the actual user property.
|
app.userProperty
|
.exactlyMatches([...])
|
Returns
TRUE
if the actual user property exactly matches
(case-sensitive)
any
of the target values in the list.
|
app.userProperty
|
.matches([...])
|
Returns
TRUE
if
any
target regular expression in the
list matches a substring of, or
the entire, actual value. To force matching of the entire string,
preface the regular expression with "^" and suffix it with "$". Uses
RE2
syntax.
|
app.id
|
==
|
Returns
TRUE
if the value specified matches the app's App Id.
|
app.build
|
,
<> ,
==
,
!=
,
>=
,
>
|
Returns
TRUE
if the actual app build numerically compares
to the value specified in a way that matches the operator.
|
app.build
|
.contains([...])
|
Returns
TRUE
if any of the target values is a substring of
the actual app build—for example, "a" and "bc" are substrings of
"abc".
|
app.build
|
.notContains([...])
|
Returns
TRUE
if none of the target values is a substring of
the actual app build.
| For example,
app.build.notContains([123, 456])
returns
TRUE
if
the actual app build is 123 or 492, but returns
FALSE
if the
actual app build is 999.
app.build
|
.exactlyMatches([...])
|
Returns
TRUE
if the actual app build exactly matches
any
of the target values in the list.
|
app.build
|
.matches([...])
|
Returns
TRUE
if
any
target regular expression in the
list matches a substring of, or the entire, actual value. To force matching
of the entire string, preface the regular expression with "^" and suffix it
with "$". Uses
RE2
syntax.
|
app.version
|
,
<> ,
==
,
!=
,
>=
,
>
|
Returns
TRUE
if the actual app version numerically compares
to the value specified in a way that matches the operator.
|
app.version
|
.contains([...])
|
Returns
TRUE
if any of the target values is a substring of
the actual app version—for example, "a" and "bc" are substrings of
"abc".
|
app.version
|
.notContains([...])
|
Returns
TRUE
if none of the target values is a substring of
the actual app version.
| For example,
app.version.notContains([123, 456])
returns
TRUE
if
the actual app version is 123 or 492, but returns
FALSE
if the
actual app version is 999.
app.version
|
.exactlyMatches([...])
|
Returns
TRUE
if the actual app version exactly matches
any
of the target values in the list.
|
app.version
|
.matches([...])
|
Returns
TRUE
if
any
target regular expression in the
list matches a substring of, or the entire, actual value. To force matching
of the entire string, preface the regular expression with "^" and suffix it
with "$". Uses
RE2
syntax.
|
app.operatingSystemAndVersion
|
.inOne([...])
|
Returns
TRUE
if the OS and version matches
any
of the
target values in the list.
For example:
app.operatingSystemAndVersion.inOne([operatingSystemName('Macintosh').version.==('10.15')])
|
app.browserAndVersion
|
.inOne([...])
|
Returns
TRUE
if the browser and version matches
any
of the
target values in the list.
For example:
app.browserAndVersion.inOne([browserName('Chrome').anyVersion])
|
app.firebaseInstallationId
|
in [...]
|
Returns
TRUE
if the installation id
matches any specified in the list. Sample usage:
app.firebaseInstallationId
in ['eyJhbGciOiJFUzI1N_iIs5', 'eapzYQai_g8flVQyfKoGs7']
|
device.country
|
in [...]
|
Returns
TRUE
if the device's country
matches any specified in the list. Sample usage:
device.country in
['gb', 'us']
.
The device country code is determined using the
device's IP address in the request or the country code determined by Firebase
Analytics (if Analytics data is shared with Firebase).
|
device.dateTime
|
<> ,
>
|
Compares the current time
to the target time of the condition and evaluates to
TRUE
or
FALSE
based on the operator. Sample usage:
dateTime
<> .
|
device.language
|
in [...]
|
Returns
TRUE
if any of the app's languages match a language
in the list. Sample usage:
device.language in ['en-UK', 'en-US']
.
|
device.os
|
==
,
!=
|
Returns
TRUE
if the device's operating system compares
to the value in that field matching the operator.
|
percent
|
<> ,
>
,
between
|
Returns
TRUE
if the value in the
percent
field
compares to the value that was randomly assigned matching the operator.
You can specify a seed to select a new randomly-assigned
group of app instances for a given percentage range as described in
Condition rule
types
.
To do this, provide the
name of the seed before the operator, as in the following example:
percent('keyName')
<=>=>
To configure a specific range, you can use the
between
operator. To configure a range of users between 20 and 60 using the
default seed
:
percent between 20 and 60
To configure a range of users between 60 and 80 using a custom seed:
percent('seedName') between 60 and 80
|