Перейти к консоли

远程配置参数和条件

使用 Firebase 控制台或 Remote Config REST API 时,您需要指定一个或多个参数(键值对),并为这些参数提供应用内默认值。您可以通过定义服务器端参数值来替换应用内默认值。参数键和参数值都是字符串,但是当您在自己的应用中使用参数值时,这些值可以转换为其他数据类型。

借助 Firebase 控制台或 Remote Config REST API,您可以为参数创建新的默认值,以及用于定位应用实例组的条件值。每当您在 Firebase 控制台中更新配置时,Firebase 都会创建并发布远程配置模板的新版本。系统会存储以前的版本,便于您根据需要进行检索或回滚。您也可以通过 REST API 执行这些操作。

本指南将介绍参数、条件、规则、条件值以及各种参数值在远程配置服务器和应用中的优先级,还介绍了用于创建条件的规则类型的相关详细信息。

条件、规则和条件值

条件用于定位一组应用实例。条件由一个或多个规则组成,对于给定应用实例,这些规则必须全部求值为 true,才能使条件求值为 true。如果规则的值未指定(例如没有值可用),该规则将求值为 false

例如,指定应用的初始屏幕的参数可以使用简单规则 if device_os = Android 根据操作系统类型显示不同的图片:

或者,可以使用时间条件来控制应用何时显示特别促销商品。

一个参数可以具有多个使用不同条件的条件值,并且多个参数可以共用一个项目中的多个条件。

参数值优先级

一个参数可能有多个与其关联的条件值。以下规则用于确定在某个特定时间点从远程配置服务器获取哪个值,以及在给定的应用实例中使用哪个值:

服务器端参数值按以下优先级列表获取

  1. 首先,对于某个给定的应用实例,如果有任何条件求值为 true,则应用相应的条件值。如果多个条件求值为 true,则 Firebase 控制台界面中显示的第一个(最上面)条件的优先级最高,并且系统在应用从后端中提取值时会提供与该条件关联的条件值。您可以通过在条件标签页中拖放条件来更改条件的优先级。

  2. 如果没有条件求值为 true 的条件值,则应用从后端提取值时系统会提供服务器端默认值。如果后端中不存在某个参数,或者如果默认值设为 No value,则当应用提取值时,系统不会为该参数提供任何值。

在您的应用中,参数值由 get 方法根据以下优先级列表返回

  1. 如果从后端提取并激活了某个值,则应用将使用该提取的值。参数值一旦激活则永久有效。
  2. 如果未从后端提取任何值,或者如果从远程配置后端提取的值尚未激活,则应用将使用应用内默认值。
  3. 如果未设置应用内默认值,则应用会使用静态类型值(例如,对于 int 使用 0,对于 boolean 使用 false)。

下图总结了参数值在远程配置后端和应用中的优先级排序:

条件规则类型

Firebase 控制台支持以下规则类型。Remote Config REST API 中提供了等效功能,详见条件表达式参考

规则类型运算符注意
应用 == 从与 Firebase 项目关联的应用 ID 列表中选择。 将某个应用添加到 Firebase 时,您需要输入一个 iOS 软件包 ID 或 Android 软件包名称(用于指定一个在远程配置规则中显示为应用 ID 的属性)。

请按以下所述使用此属性:
  • 对于 iOS 应用:使用应用的 CFBundleIdentifier。您可以在常规标签中找到软件包标识符,以在 Xcode 中用于应用主目标。
  • 对于 Android 应用:使用应用的 applicationId。您可以在应用级 build.gradle 文件中找到 applicationId
应用版本 完全匹配、
包含、不包含、正则表达式
输入一个值以指定应用的特定版本(或相关版本)。在使用此规则之前,您必须使用一个应用 ID 规则来选择与您的 Firebase 项目关联的应用。

对于 iOS 应用,这是应用的 CFBundleVersion。对于 Android 应用,这是应用的版本名称。此规则在进行字符串比较时区分大小写。

当使用完全匹配、包含或不包含运算符时,您可以提供一个以英文逗号分隔的值列表。

使用正则表达式运算符时,您可以创建采用 RE2 格式的正则表达式。您的正则表达式可以与目标版本字符串的全部或部分文本匹配。您还可以使用 ^$ 定位点与目标字符串的开头部分、结尾部分或全部文本匹配。

操作系统类型 == iOS
Android
 
日期/时间 <=、> 指定的日期和时间,可以是设备时区,也可以是指定时区,如“(GMT+11) 悉尼时间”。 将当前时间与设备提取时间进行比较。
用户(随机百分位) <=、> 0-100

使用此字段可将更改应用于一批随机选取的应用实例(抽样比例大小最小可以是 .0001%),使用 <= 和 > 运算符将用户(应用实例)分组。

根据相关项目中定义某一个键,每个应用实例都会永久映射到一个随机整数或小数。除非您选择或创建另一个键,否则规则将使用默认键(在 Firebase 控制台中显示为 DEF)。只需清除使用此键随机选择用户字段,就可以将规则恢复为使用默认键。您可以在多个规则中使用单个键,以便在给定的百分比范围内始终处理相同的应用实例。或者,您也可以通过创建一个新键,在给定的百分比范围内选择一组新的随机分配的应用实例。

例如,若要创建两个相关的条件,每个条件对应于应用用户中 5% 的人,且没有重合的用户,则您可以让一个条件包含 <= 5% 规则,另一个条件同时包含 > 5% 规则和 <= 10% 规则。如果不禁止一些随机用户同时出现在这两个组中,可对每个条件中的规则使用不同的键。

用户(受众群体) == 从您为自己的项目设置的 Google Analytics(分析)受众群体列表中选择一个或多个受众群体。

此规则需要配合一条应用 ID 规则使用,以选择与您的 Firebase 项目关联的某个应用。

注意:由于许多 Analytics 受众群体是通过事件或用户属性定义的,而这些事件或属性可根据应用用户的行为或操作获得,因此对于某个给定的应用实例而言,用户(受众群体)规则可能需要一段时间才能生效。

设备所在国家/地区 == 选择一个或多个国家或地区。 如果某个给定的应用实例位于所列出的任何一个国家或地区中,则对于该实例而言,此规则的求值结果为 true。可以使用请求中的设备的 IP 地址或由 Firebase Analytics 确定的国家/地区代码(如果 Analytics 与 Firebase 共享其数据)来确定设备国家/地区代码。
设备语言 == 选择一种或多种语言。 对于某个给定的应用实例而言,如果安装了该应用实例的设备使用的语言是所列语言之一,则此规则的求值结果为 true
用户属性 对于字符串值
包含、
不包含、
完全匹配、
正则表达式

对于数值
=、≠、>、≥、<、≤

注意:在客户端上,只能为用户属性设置字符串值。对于使用数值运算符的条件,远程配置会将相应用户属性的值转换为整数/浮点数。
从可用的 Google Analytics(分析)用户属性列表中选择。 要了解如何利用用户属性来针对非常具体的细分用户群量身打造应用,请参阅远程配置和用户属性

要了解关于用户属性的更多信息,请参阅下列指南:

当使用完全匹配、包含或不包含运算符时,您可以提供一个以英文逗号分隔的值列表。

使用正则表达式运算符时,您可以创建采用 RE2 格式的正则表达式。您的正则表达式可以与目标版本字符串的全部或部分文本匹配。您还可以使用 ^$ 定位点与目标字符串的开头部分、结尾部分或全部文本匹配。

注意:目前,在创建远程配置条件时无法使用自动收集的用户属性

搜索参数和条件

Firebase 控制台中,您可以使用远程配置参数标签顶部的搜索框来搜索项目的参数键、参数值和条件。

参数和条件的限制

在一个 Firebase 项目中,最多可以有 2000 个参数和 500 个条件。参数键最多可包含 256 个字符,且必须以下划线或英文字母(A-Z、a-z)开头,还可以包含数字。一个项目中所有参数值字符串的总长度不能超过 80 万个字符。

后续步骤

要开始配置您的 Firebase 项目,请参阅设置 Firebase 远程配置项目