获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

远程配置条件表达式参考

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

此页面包含使用远程配置后端 API 或 Firebase 控制台构建条件表达式的参考信息。有关设置和使用后端 API 的更多信息,请参阅以编程方式修改远程配置

用于创造条件的元素

Remote Config REST API 支持在使用 Firebase 控制台配置 Remote Config 时可用于创建条件的相同元素:

元素描述
&&

如果对一个条件使用多个元素,则用于创建元素的逻辑“与”。如果在没有&&的情况下在 REST 语法中使用元素,则该元素将被视为条件。

注意: &符号前后需要一个空格。例如: element1 && element2

app.build

根据应用程序内部版本号的值评估为TRUEFALSE

注意:仅适用于 Apple 和 Android 设备。对于 Apple,使用CFBundleVersion的值,对于 Android,使用versionCode的值。

app.version

根据应用版本号的值评估为TRUEFALSE

注意: Android 设备使用versionName的值,Apple 设备使用CFBundleShortVersionString的值。

app.id基于应用的 Firebase 应用 ID 的元素
app.audiences根据用户在一个或多个Firebase Analytics 受众中的存在或不存在评估为TRUEFALSE的元素。
app.firstOpenTimestamp基于用户首次启动应用程序的元素,从 Google Analytics first_open事件中获取。使用 ISO 日期格式和指定固定时区的选项;例如, app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles') 。如果未指定时区,则使用 GMT。
app.userProperty根据Firebase Analytics User Property的数字或字符串值评估为TRUEFALSE的元素。
app.operatingSystemAndVersion

基于运行应用程序的操作系统的元素。当 OS 和 OS 版本与指定目标匹配时,计算结果为TRUE

注意:仅适用于 Web 应用程序。

app.browserAndVersion

基于运行应用程序的浏览器的元素。当浏览器和浏览器版本与指定目标匹配时,计算结果为TRUE

注意:仅适用于 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

单元素条件包含三个字段:

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

支持的运营商

例如,如果实际应用程序版本为 123 或 492, app.build.notContains([123, 456])返回TRUE ,但如果实际应用程序版本为 999,则返回FALSE 。例如, app.version.notContains([123, 456])如果实际应用版本为 123 或 492,则返回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.firstOpenTimestamp <=, >first_open事件的时间与条件中的指定时间进行比较,并根据运算符返回TRUEFALSE
示例用法:
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
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 <= , >将当前时间与条件的目标时间进行比较,并根据运算符评估为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