欢迎参加我们将于 2022 年 10 月 18 日举办的 Firebase 峰会(线上线下同时进行),了解 Firebase 如何帮助您加快应用开发速度、满怀信心地发布应用,并在之后根据需要轻松地扩大应用规模。立即报名

Firebase Remote Config 使用入门

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


您可以使用 Firebase Remote Config 来定义应用中的参数并在云端更新它们的值。这样,您无需更新应用即可修改应用的外观和行为。

Remote Config 库用于存储应用内默认参数值,从 Remote Config 后端中提取更新后的参数值,以及控制提取的值何时可供应用使用。如需了解详情,请参阅 Remote Config 加载策略

本指南逐步介绍了入门步骤并提供了一些示例代码,所有这些代码都可以从 firebase/quickstart-unity GitHub 代码库中克隆或下载。

第 1 步:将 Remote Config 添加到您的应用

您需要先完成以下步骤,然后才能使用 Remote Config

  • 注册 Unity 项目并将其配置为使用 Firebase。

    • 如果您的 Unity 项目已在使用 Firebase,那么该项目已经注册并已配置为使用 Firebase。

    • 如果您没有 Unity 项目,则可以下载示例应用

  • Firebase Unity SDK(具体而言是 FirebaseRemoteConfig.unitypackage)添加到您的 Unity 项目中。

请注意,要将 Firebase 添加到 Unity 项目,需要在 Firebase 控制台中和打开的 Unity 项目中执行若干任务(例如,从控制台下载 Firebase 配置文件,然后将配置文件移到 Unity 项目中)。

第 2 步:设置应用内默认参数值

您可以在 Remote Config 对象中设置应用内默认参数值,以便应用在连接到 Remote Config 后端之前能够按预期运行,并且保证在后端中未设置任何值时可以使用默认值。

为实现上述目标,请创建一个新的字符串字典,并在其中填充一些键值对,以代表您要添加的默认参数值。如果您已配置 Remote Config 后端参数值,则可以下载包含这些键值对的文件,并使用该文件构建字符串字典。如需了解详情,请参阅下载 Remote Config 模板默认值

(调用 SetDefaultsAsync() 时,非字符串属性将转化为该属性对应的类型。)

System.Collections.Generic.Dictionary<string, object> defaults =
  new System.Collections.Generic.Dictionary<string, object>();

// These are the values that are used if we haven't fetched data from the
// server
// yet, or if we ask for values that the server doesn't have:
defaults.Add("config_test_string", "default local string");
defaults.Add("config_test_int", 1);
defaults.Add("config_test_float", 1.0);
defaults.Add("config_test_bool", false);

Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.SetDefaultsAsync(defaults)
  .ContinueWithOnMainThread(task => {

第 3 步:获取要在应用中使用的参数值

现在,您可以从 Remote Config 对象中获取参数值。如果您在 Remote Config 后端中设置值,然后提取并激活它们,这些值便可供您的应用使用。否则,您将获得使用 SetDefaultsAsync() 配置的应用内参数值。

如需获取这些值,请调用 GetValue() 方法,并传入参数键作为调用的实参。这将返回一个 ConfigValue 对象,其中包含将值转换为各种基本类型的属性。

第 4 步:在 Firebase 控制台中关联您的应用

Firebase 控制台中,将您的应用添加到 Firebase 项目中。

第 5 步:设置参数值

  1. Firebase 控制台中打开您的项目。
  2. 从菜单中选择 Remote Config 以查看 Remote Config 信息中心。
  3. 使用您在应用中指定的参数名称来定义参数。对于每个参数,您可以设置默认值(最终将替换应用内默认值)和条件值。如需了解详情,请参阅 Remote Config 参数和条件

第 6 步:提取并激活值(根据需要)

如需从 Remote Config 后端提取参数值,请调用 FetchAsync() 方法。系统将提取您在后端中设置的所有值,并缓存在 Remote Config 对象中。

// Start a fetch request.
// FetchAsync only fetches new data if the current data is older than the provided
// timespan.  Otherwise it assumes the data is "recent enough", and does nothing.
// By default the timespan is 12 hours, and for production apps, this is a good
// number. For this example though, it's set to a timespan of zero, so that
// changes in the console will always show up immediately.
public Task FetchDataAsync() {
  DebugLog("Fetching data...");
  System.Threading.Tasks.Task fetchTask =
  Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.FetchAsync(
      TimeSpan.Zero);
  return fetchTask.ContinueWithOnMainThread(FetchComplete);
}

当提取操作完成后,通过 FetchAsync() 提取的值将缓存在本地,但直到调用 ActivateFetched() 之后才可使用。由于 FetchAsync() 是异步执行的,这可确保系统不会在计算过程中或在可能导致问题或异常行为的其他时间点应用新值。

第 7 步:(可选)启用开发者模式

如需启用开发者模式(可用于在开发过程中停用相关限制),您可以使用 FirebaseRemoteConfig.Setting 属性,设置一个新的 ConfigSettings,并将 IsDeveloperMode 设置为 true。

后续步骤

浏览 Remote Config 使用场景并查看一些关键的概念和高级策略文档(如果您尚未这样做),包括: