此页面包含使用远程配置后端 API 或 Firebase 控制台构建条件表达式的参考信息。有关设置和使用后端 API 的更多信息,请参阅以编程方式修改远程配置。
用于创造条件的元素
Remote Config REST API 支持在使用 Firebase 控制台配置 Remote Config 时可用于创建条件的相同元素:
元素 | 描述 |
---|---|
&& | 如果对一个条件使用多个元素,则用于创建元素的逻辑“与”。如果在没有 注意: &符号前后需要一个空格。例如: |
app.build | 根据应用程序内部版本号的值评估为 注意:仅适用于 Apple 和 Android 设备。对于 Apple,使用CFBundleVersion的值,对于 Android,使用versionCode的值。 |
app.version | 根据应用版本号的值评估为 注意: Android 设备使用versionName的值,Apple 设备使用CFBundleShortVersionString的值。 |
app.id | 基于应用的 Firebase 应用 ID 的元素 |
app.audiences | 根据用户在一个或多个Firebase Analytics 受众中的存在或不存在评估为TRUE 或FALSE 的元素。 |
app.firstOpenTimestamp | 基于用户首次启动应用程序的元素,从 Google Analytics first_open 事件中获取。使用 ISO 日期格式和指定固定时区的选项;例如, app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles') 。如果未指定时区,则使用 GMT。 |
app.userProperty | 根据Firebase Analytics User Property的数字或字符串值评估为TRUE 或FALSE 的元素。 |
app.operatingSystemAndVersion | 基于运行应用程序的操作系统的元素。当 OS 和 OS 版本与指定目标匹配时,计算结果为 注意:仅适用于 Web 应用程序。 |
app.browserAndVersion | 基于运行应用程序的浏览器的元素。当浏览器和浏览器版本与指定目标匹配时,计算结果为 注意:仅适用于 Web 应用程序。 |
app.firebaseInstallationId | 基于特定设备安装 ID 的元素。当安装 ID与指定的安装 ID 之一匹配时,计算结果为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 | 根据用户包含在随机分配的小数百分比(样本量小至 0.000001%)中评估为TRUE 。 |
单元素条件包含三个字段:
- 任意定义的
name
(最多 100 个字符) - 计算结果为
TRUE
或FALSE
的条件表达式,由上面显示的元素组成。 - (可选)
tagColor
,可以是“BLUE
”、“BROWN
”、“CYAN
”、“DEEP_ORANGE
”、“GREEN
”、“INDIGO
”、“LIME
”、“ORANGE
”、“PINK
”、“PURPLE
”或“TEAL
”。颜色不区分大小写,仅影响条件在 Firebase 控制台中的显示方式。
支持的运营商
元素 | 支持的运营商 | 描述 |
---|---|---|
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 | == | 如果指定的值与应用程序的应用程序 ID 匹配,则返回TRUE 。 |
app.build | < , <= , == , != , >= , > | 如果实际应用程序构建在数值上与以匹配运算符的方式指定的值进行比较,则返回TRUE 。 |
app.build | .contains([...]) | 如果任何目标值是实际应用构建的子字符串,则返回TRUE 例如,“a”和“bc”是“abc”的子字符串。 |
app.build | .notContains([...]) | 如果没有目标值是实际应用程序构建的子字符串,则返回TRUE 。 | 例如,如果实际应用程序版本为 123 或 492, 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 [...] | 如果安装 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 | <= , > , between | 如果percent 字段中的值与随机分配的匹配运算符的值相比较,则返回TRUE 。您可以指定一个种子来为给定的百分比范围选择一组随机分配的新应用程序实例,如条件规则类型中所述。 为此,请在运算符之前提供种子的名称,如以下示例所示: percent('keyName') <= 10 要配置特定范围,您可以使用 percent between 20 and 60 使用自定义种子配置 60 到 80 岁之间的用户范围: percent('seedName') between 60 and 80 |