本页面包含有关使用 Remote Config REST API 或 Firebase 控制台构建条件表达式的参考信息。如需详细了解如何设置及使用后端 API,请参阅以编程方式修改远程配置。
用于创建条件的元素
Remote Config REST API 支持那些您在使用 Firebase 控制台设置远程配置时可用于创建条件的元素:
元素 | 说明 |
---|---|
&& |
用于在多个元素之间创建逻辑“与”关系(如果为某个条件使用了多个元素)。如果在 REST 语法中使用的元素不带 注意:该元素前后必须留一个空格。例如: |
app.build |
求值为 注意:此功能仅适用于 Apple 和 Android 设备。对于 Apple,请使用 CFBundleVersion 的值;对于 Android,请使用 versionCode 的值。 |
app.version |
求值为 注意:对于 Android 设备,使用 versionName 值;对于 Apple 设备,则使用 CFBundleShortVersionString 的值。 |
app.id |
一个基于应用的 Firebase 应用 ID 的元素 |
app.audiences |
一个求值为 TRUE 或 FALSE (具体取决于用户是否属于一个或多个 Firebase Analytics 受众群体)的元素。 |
app.userProperty |
一个求值为 TRUE 或 FALSE (具体取决于 Firebase Analytics 用户属性的数值或字符串值)的元素。 |
app.operatingSystemAndVersion |
一个基于运行应用的操作系统的元素。如果操作系统和操作系统版本与指定的目标匹配,则求值为 注意:仅适用于 Web 应用。 |
app.browserAndVersion |
一个基于运行应用的浏览器的元素。当浏览器和浏览器版本与指定的目标匹配时,求值为 注意:仅适用于 Web 应用。 |
app.firebaseInstallationId |
一个基于特定设备安装 ID 的元素。
如果安装 ID 与其中一个指定的安装 ID 匹配,则求值为 TRUE 。 |
device.country |
一个基于设备所在的国家/地区的元素,遵循 ISO 3166-1 alpha-2 标准(例如,US 或 UK)。如果国家/地区与预期的国家/地区代码匹配,则求值为 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 |
当用户对应于随机分配的(小数型)百分位(抽样规模最小可以是 0.000001%)时,求值为 TRUE 。 |
只有一个元素的条件包含三个字段:
- 任意定义的
name
(最多 100 个字符) - 一个由上述元素组成且求值为
TRUE
或FALSE
的条件表达式。 - (可选)
tagColor
,可以是“BLUE
”、“BROWN
”、“CYAN
”、“DEEP_ORANGE
”、“GREEN
”、“INDIGO
”、“LIME
”、“ORANGE
”、“PINK
”、“PURPLE
”或“TEAL
”。颜色不区分大小写,仅会影响条件在 Firebase 控制台中的显示方式。
支持的运算符
例如,如果实际应用版本为 123 或 492,则app.build.notContains([123, 456])
会返回 TRUE
,而如果实际应用版本为 999,则返回 FALSE
。
例如,如果实际应用版本为 123 或 492,则 app.version.notContains([123, 456])
会返回 TRUE
,而如果实际应用版本为 999,则返回 FALSE
。
元素 | 支持的运算符 | 说明 |
---|---|---|
app.audiences |
.inAtLeastOne([...]) |
如果实际受众群体与列表中的至少一个受众群体名称匹配,则返回 TRUE 。例如: app.audiences.inAtLeastOne(['Audience 1', 'Audience 2']) |
app.audiences |
.notInAtLeastOne([...]) |
如果实际受众群体与列表中的至少一个受众群体名称不匹配,则返回 TRUE 。 |
app.audiences |
.inAll([...]) |
如果实际受众群体是列表中每个受众群体的成员,则返回 TRUE 。 |
app.audiences |
.notInAll([...]) |
如果实际受众群体不是列表中任何受众群体的成员,则返回 TRUE 。 |
app.userProperty |
< 、<= 、== 、!= 、>= 、> |
如果实际用户属性与所指定值的比较结果与相应运算符一致,则返回 TRUE 。 |
app.userProperty |
.contains([...]) |
如果任何目标值是实际用户属性的子字符串,则返回 TRUE 。 |
app.userProperty |
.notContains([...]) |
如果目标值都不是实际用户属性的子字符串,则返回 TRUE 。 |
app.userProperty |
.exactlyMatches([...]) |
如果实际用户属性与列表中的任何目标值完全匹配(区分大小写),则返回 TRUE 。 |
app.userProperty |
.matches([...]) |
如果列表中的任何目标正则表达式与整个实际值或该值的子字符串匹配,则返回 TRUE 。如需强制与整个字符串匹配,请在正则表达式前面和后面分别加上“^”和“$”。使用 RE2 语法。 |
app.id |
== |
如果指定的值与相应应用的应用 ID 匹配,则返回 TRUE 。 |
app.build |
< 、<= 、== 、!= 、>= 、> |
如果实际应用版本与所指定值的比较结果与相应运算符一致,则返回 TRUE 。 |
app.build |
.contains([...]) |
如果任何目标值是实际应用版本的子字符串(例如“a”和“bc”是“abc”的子字符串),则返回 TRUE 。 |
app.build |
.notContains([...]) |
如果目标值都不是实际应用版本的子字符串,则返回 TRUE 。 |
app.build |
.exactlyMatches([...]) |
如果实际应用版本与列表中的任何目标值完全匹配,则返回 TRUE 。 |
app.build |
.matches([...]) |
如果列表中的任何目标正则表达式与整个实际值或该值的子字符串匹配,则返回 TRUE 。如需强制与整个字符串匹配,请在正则表达式前面和后面分别加上“^”和“$”。使用 RE2 语法。 |
app.version |
< 、<= 、== 、!= 、>= 、> |
如果实际应用版本与所指定值的比较结果与相应运算符一致,则返回 TRUE 。 |
app.version |
.contains([...]) |
如果任何目标值是实际应用版本的子字符串(例如“a”和“bc”是“abc”的子字符串),则返回 TRUE 。 |
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 [...] |
如果安装 ID 与列表中指定的任何 ID 匹配,则返回 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 |
<= 、> |
如果 percent 字段中的值与随机分配的值的比较结果与相应运算符一致,则返回 TRUE 。
|