Remote Config 参数和条件


您可以为客户端和服务器用例配置模板。客户端模板可提供给所有实现了适用于 Remote Config 的 Firebase 客户端 SDK 的应用实例使用,包括 Android、Apple、Web、Unity、Flutter 和 C++ 应用。服务器专属 Remote Config 模板中的参数和值可提供给使用 Firebase Admin Node.js SDK 12.1.0 版或更高版本的 Remote Config 实现(包括 Cloud Run 和 Cloud Functions)使用。

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

借助 Firebase 控制台、Admin SDKRemote Config REST API,您可以为参数创建新的默认值,以及用于定位应用实例组的条件值。每当您在 Firebase 控制台中更新配置时,Firebase 都会创建并发布 Remote Config 模板的新版本。系统会存储以前的版本,便于您根据需要进行检索或回滚。您可以通过 Firebase 控制台、Firebase Admin SDK 和 REST API 来执行相关操作;如需了解详情,请参阅管理 Remote Config 模板版本

本指南将介绍参数、条件、规则、条件值,以及各种参数值在 Remote Config 后端和应用中的优先级,另外还详细说明了用于创建条件的规则类型。

条件、规则和条件值

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

例如,您可以创建一个参数来定义大语言模型 (LLM) 模型名称和版本字符串,并根据自定义信号规则提供来自不同模型的响应。在此用例中,您可以使用稳定的模型版本作为默认值来处理大多数请求,并使用自定义信号使用实验模型来响应测试客户端请求。

一个参数可以具有多个使用不同条件的条件值,并且多个参数可以共用一个项目中的多个条件。在 Firebase 控制台的“参数”标签页中,您可以查看每个参数的条件值的提取百分比。此指标表示过去 24 小时内收到每个值的请求所占的百分比。

参数值优先级

当您在使用 Firebase Admin SDK 的服务器应用中使用 Remote Config 时,您会获取并加载整个模板,以便根据需要为每个客户端请求提取适当的参数值。一个参数可能有多个与其关联的条件值。

以下规则将确定在特定时间点的模板评估期间分配哪个值:

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

  2. 如果没有条件求值为 true 的条件值,模板评估期间会提供 Remote Config 的默认值。如果模板中不存在某个参数,或者默认值设为使用应用内默认值,当模板被评估时,系统不会为该参数提供任何值。

如需详细了解如何在服务器应用中加载和评估 Remote Config 模板,请参阅在服务器环境中使用 Remote Config

参数值数据类型

借助 Remote Config,您可以为每个参数选择数据类型,并在模板更新之前根据该类型验证所有 Remote Config 的值。数据类型存储在 getRemoteConfig 请求中并会通过该请求返回。

支持的数据类型包括:

  • String
  • Boolean
  • Number
  • JSON

Firebase 控制台界面中,您可以从参数键旁边的下拉菜单中选择数据类型。在 REST API 中,可以使用参数对象中的 value_type 字段来设置类型。

参数组

借助 Remote Config,您可以将参数组合在一起,以获得更有条理的界面并提高可用性。

例如,假设您需要在发布新的登录功能时启用或停用三种不同的身份验证类型。借助 Remote Config,您可以创建三个参数以根据需要启用类型,然后将其整理到名为“新登录”的组中,无需添加前缀或特殊排序。

您可以使用 Firebase 控制台或 Remote Config REST API 创建参数组。您创建的每个参数组在 Remote Config 模板中都有一个唯一的名称。创建参数组时,请注意以下事项:

  • 在任何时候,参数都只能包含在一个组中,并且参数键在所有参数中必须保持唯一。
  • 参数组名称不得超过 256 个字符。
  • 如果您同时使用 REST API 和 Firebase 控制台,请确保所有 REST API 逻辑都已更新,以便在发布时处理参数组。

使用 Firebase 控制台创建或修改参数组

您可以在 Firebase 控制台的参数标签页中对参数进行分组。如需创建或修改参数组,请按以下步骤操作:

  1. 选择管理群组
  2. 选中您要添加的参数对应的复选框,然后选择移至群组
  3. 选择现有参数组,或通过输入名称和说明然后选择创建新群组来创建一个新组。 保存组后,可以使用发布更改按钮进行发布。

条件规则类型

适用于服务器应用的 Remote Config 模板支持以下条件类型:

用户(随机百分比)

使用此字段可将更改应用于一批随机选取的应用实例(抽样比例大小最小可以是 .0001%),使用滑块微件将随机打乱的用户(应用实例)分组。

根据相关项目中定义的某个种子,每个应用实例都会永久映射到一个随机整数或小数。

除非您修改种子值,否则规则将使用默认键(在 Firebase 控制台中显示为修改种子)。只需清除种子字段,就可以将规则恢复为使用默认键。

为了在给定的百分比范围内始终处理相同的应用实例,请针对各种条件使用相同的种子值。或者,通过指定新种子,为给定的百分比范围选择一组新的随机分配的应用实例。

例如,若要创建两个相关的条件,每个条件对应于应用用户中 5% 的人,且没有重合的用户,则您可以将一个条件配置为匹配 0% 到 5% 之间的百分比,将另一个条件配置为匹配 5% 到 10% 之间的范围。如需允许一些用户随机出现在这两个组中,请为每个条件中的规则使用不同的种子值。

如需了解如何向应用添加随机百分比条件,请参阅配置服务器应用

自定义信号

使用 Firebase Admin Node.js SDK 12.5.0 及更高版本,您可以使用自定义信号条件类型来匹配您在应用中定义的任意条件。这样,您就可以针对每个客户端请求定制服务器响应。

例如,如果您正在开发一个服务器应用,该应用使用生成式 AI 帮助通过针对特定平台调整的不同模型来撰写回复,您可以执行以下操作:

  1. promptmodel_name 参数添加到 Remote Config 服务器模板中。
  2. 为您要定位的每个平台添加自定义信号,并将值设为 platform
  3. 为特定于服务器的 Remote Config 模板添加默认值,并为您定义的每个平台条件添加条件值。
  4. 更新您的应用代码,以设置和使用 platform 自定义信号。

现在,您的应用可以在模板评估期间提取适当的提示和模型,并使用它们向每个客户端返回自定义响应。

您可以使用以下规则类型在 Firebase 控制台中创建自定义信号。

运算符类别 运算符 备注
文字 完全匹配、包含、不包含、包含正则表达式

此规则在进行字符串比较时区分大小写。当使用完全匹配包含不包含包含正则表达式运算符时,您可以选择多个值。

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

数字 <、<=、=、!=、>、>= 数字,小数点两边的数字不得超过 10 位。
版本 <、<=、=、!=、>、>= 数字,表示要匹配的版本号(例如 2.1.0)。

如需了解如何向应用添加自定义信号,请参阅配置服务器应用

搜索参数和条件

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

参数和条件的限制

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

查看对参数和条件的更改

您可以在 Firebase 控制台中查看有关 Remote Config 模板的最新更改。对于每个参数和条件,您可以执行以下操作:

  • 查看上次修改参数或条件的用户的姓名。

  • 如果更改是在当天发生的,您可以查看自更改发布到有效 Remote Config 模板后经过的分钟数或小时数。

  • 如果更改是在过去一天或数天内发生的,您可以查看更改发布到有效 Remote Config 模板的日期。

参数的更改历史记录

Remote Config参数页面上,上次发布者列会显示上次修改每个参数的用户以及上次发布更改的日期:

  • 如需查看已分组参数的更改元数据,请展开参数组。

  • 如需按发布日期进行升序或降序排序,请点击上次发布时间列标签。

条件的更改历史记录

Remote Config条件页面上,您可以在每个条件下方查看上次修改该条件的用户,并在上次修改时间旁边查看修改时间。

后续步骤

如需将 Firebase 项目和服务器应用配置为使用 Remote Config,请参阅在服务器环境中使用 Remote Config