转到控制台

远程配置条件表达式参考

此页面包含有关使用 Remote Config REST API 或 Firebase 控制台构建条件表达式的参考信息。要详细了解如何设置和使用 REST API,请参阅使用 Remote Config REST API

用于创建条件的元素

Remote Config REST API 支持那些您在使用 Firebase 控制台设置远程配置服务时可用于创建条件的元素:

元素 说明
&&

用于在多个元素之间创建逻辑“与”关系(如果为某个条件使用了多个元素)。如果在 REST 语法中使用的元素不带 && ,系统会将该元素视为一个条件。

注意:该元素前后必须留一个空格。例如:element1 && element2

app.version 求得的值为 TRUEFALSE,具体取决于应用版本号的值。
app.id 一个基于应用的 Firebase 应用 ID 的元素
app.audiences 一个求得的值为 TRUEFALSE(具体取决于用户是否属于一个或多个 Firebase Analytics 受众群体)的元素。
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 一个基于设备上使用的操作系统(iOS 或 Android)的元素。当设备的操作系统是预期的类型时,求得的值为 TRUE
app.userProperty 一个求得的值为 TRUEFALSE(具体取决于 Firebase Analytics 用户属性的数字值或字符串值)的元素。
percent 当用户对应于随机指定的(小数型)百分位(抽样规模最小可以是 0.000001%)时,求得的值为 TRUE

只有一个元素的条件包含三个字段:

  1. 一个任意指定的 name(最多 100 个字符)
  2. 一个由上述元素组成且求得的值为 TRUEFALSE 的条件表达式。
  3. (可选)tagColor,可以是“BLUE”、“BROWN”、“CYAN”、“DEEP_ORANGE”、“GREEN”、“INDIGO”、“LIME”、“ORANGE”、“PINK”、“PURPLE”或“TEAL”。颜色不区分大小写,仅会影响条件在 Firebase 控制台中的显示方式。

支持的运算符

例如,如果实际应用版本为 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.version .contains([...]) 如果任何目标值是实际应用版本的子字符串(例如“a”和“b”是“abc”的子字符串),则返回 TRUE
app.version .notContains([...]) 如果目标值都不是实际应用版本的子字符串,则返回 TRUE
app.version .exactlyMatches([...]) 如果实际应用版本与列表中的任意目标值完全匹配,则返回 TRUE
app.version .matches([...]) 如果列表中的任意目标正则表达式与整个实际值或该值的子字符串匹配,则返回 TRUE。要强制与整个字符串匹配,请在正则表达式前面和后面分别加上“^”和“$”。请使用 RE2 语法。
device.country in [...] 如果设备的国家/地区与列表中指定的任何国家/地区匹配,则返回 TRUE。示例用法:device.country in ['gb', 'us']。可以使用请求中的设备的 IP 地址或由 Firebase Analytics 确定的国家/地区代码(如果 Analytics 数据与 Firebase 共享)来确定设备国家/地区代码。
device.dateTime <=> 将相应条件的当前时间与目标时间进行比较,并根据运算符求值为 TRUEFALSE。示例用法:dateTime < dateTime('2017-03-22T13:39:44')
device.language in [...] 如果相应应用的任一种语言与列表中的某种语言匹配,则返回 TRUE。示例用法:device.language in ['en-UK', 'en-US']
device.os ==!= 如果设备的操作系统与该字段中的值的比较结果与相应运算符一致,则返回 TRUE
percent <=> 如果 percent 字段中的值与随机指定的值的比较结果与相应运算符一致,则返回 TRUE
app.predictions .inAtLeastOne([...]) 如果指定的目标预测风险概况 ID 与预测结果相符,则返回 TRUE。目前,该条件仅支持定位一个预测风险概况 ID。示例用法:app.predictions.inAtLeastOne(['pred']);如果 'pred' 与预测结果相符,则返回 TRUE

包含空字符串的参数和没有值的参数

当您在远程配置网页控制台中创建或修改参数值时,您可以选择将参数值设置为字符串值、(空字符串)没有值。如果设置为“没有值”,则会使系统使用应用内默认值,而不是远程配置模板中的值。

当您使用远程配置 API 为您的项目获取 JSON 格式的远程配置模板时,可以按如下方式表示没有值

"myCondition" : {
  "useInAppDefault" : true
},

同样,您可以按如下方式表示(空字符串)

"myCondition" : {
  "value" : ""
},