远程配置参数和条件

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

使用 Firebase 控制台,您可以为自己的参数创建新的默认值,以及用于定位应用实例组的条件值。本指南将介绍远程配置服务器和您应用中的参数、条件、规则、条件值,以及如何确定各种参数值的优先级。本指南还将提供用于创建条件的规则类型的相关详情。

条件、规则和条件值

一个条件用于定位一组应用实例,它由一条或多条规则组成。对于某个给定的应用实例,要让条件的判断结果等于 true,组成该条件的所有规则都必须为 true。如果某条规则的值未定义(例如,当未提供任何值时),该规则就为 false

一个条件值由一个条件和一个值组成,这个值就是该条件定位到的应用实例所获取到的值。一个参数可以具有多个使用不同条件的条件值,并且多个参数可以共用一个项目中的多个条件。

参数值优先级

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

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

  1. 首先,对于某个给定的应用实例,如果有任何条件为 true,则应用相应的条件值。如果多个条件均为 true,则 Firebase 控制台界面中显示的第一个(最上面)条件的优先级最高,当某个应用从服务获取值时,服务将提供与该条件关联的条件值。您可以通过在 Conditions 标签中拖放条件来更改条件的优先级。
  2. 当应用从服务获取值时,如果没有条件为 true 的条件值,则服务将提供服务端默认值。如果服务中不存在某个参数,或者默认值已设为 No value,则当应用获取值时,服务不会为该参数提供任何值。

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

  1. 如果应用从服务获取并激活了某个值,则该应用将使用获取到的这个值。参数值一旦激活则永久有效。
  2. 如果应用未从服务获取到任何值,或者从服务获取到的值尚未激活,则该应用将使用应用内默认值。
  3. 如果未设置应用内默认值,则该应用将使用一个静态类型值(例如,对于 int 类型就是 0,对于 boolean 类型则为 false)。

下图总结了服务和您的应用中参数值的优先级排序方式:

规则类型

系统支持以下规则类型:

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

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

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

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

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

操作系统类型 == iOS
Android
 
用户(随机百分位) <=、> 0-100

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

根据项目中定义的一种密钥,每个应用实例都被永久映射到一个随机整数或小数。除非您选择或创建其他密钥,否则规则将使用默认密钥(在 Firebase 控制台中显示为 DEF)。您只需要清除使用此密钥随机选择用户字段,就可以将规则恢复为使用默认密钥。您可以在多个规则中使用单个密钥,以便在给定的百分比范围内始终定位到同一批应用实例。或者,您也可以创建一个新密钥,这样在给定的百分比范围内就能选出一组新的随机分配的应用实例。

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

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

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

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

设备所在国家/地区 == 选择一个或多个国家或地区。 如果某个给定的应用实例位于所列出的任何一个国家或地区中,则对于该实例而言,此规则的判断结果为 true
设备语言 == 选择一种或多种语言。 对于某个给定的应用实例而言,如果安装了该应用实例的设备使用的语言是所列语言之一,则此规则的判断结果为 true
用户属性 对于字符串值:
包含、
不包含、
完全匹配、
正则表达式

对于数值:
=、≠、>、≥、<、≤
从可用的 Google Analytics for Firebase 用户属性列表中选择。 要了解如何利用用户属性来针对非常具体的细分用户群量身打造应用,请参阅远程配置和用户属性

要详细了解用户属性,请参阅以下指南:

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

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

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

搜索参数和条件

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

参数和条件的限制

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

后续步骤

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

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面