Firebase 远程配置使用入门 (Unity)

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

远程配置库用于存储应用内默认参数值,从服务中提取更新后的参数值,以及控制提取的值是否可用于您的应用。如需了解详情,请参阅 Remote Config API 概览

将远程配置添加至您的应用

您必须先创建一个 Firebase 项目,并将 Firebase Unity SDK 包添加到您的 Unity 项目中,然后才能使用 Firebase 远程配置

设置:

前提条件

Android

  • Unity 5.0 或更高版本
  • Android NDK 版本 10d 或更高版本

iOS

  • Unity 5.0 或更高版本
  • Xcode 8.0 或更高版本

如果您还没有 Unity 项目,可以下载一个快速入门示例,试用一下特定的 Firebase 功能。如果使用快速入门示例,请不要忘记从项目设置中获取软件包标识符,下一步中会用到该标识符。

在 Firebase 控制台中设置您的应用

要将 Firebase 添加到您的应用,您需要有一个 Firebase 项目以及适用于您的应用的 Firebase 配置文件。

要创建 Firebase 项目,请执行以下操作:

  1. 如果您还没有 Firebase 项目,请在 Firebase 控制台中创建一个。为此,请点击添加项目。如果您已经有与自己的移动应用相关联的现有 Google 项目,请从项目名称下拉菜单中选择该项目。否则,请输入项目名称以创建新项目。
  2. 可选:修改您的项目 ID。系统会自动为您的项目指定唯一 ID,此 ID 将用在公开显示的 Firebase 功能(例如数据库网址)以及您的 Firebase 托管子域名中。如果您想使用特定子域名,现在就可以更改此 ID。
  3. 执行其余的设置步骤,然后点击创建项目(如果您使用现有的项目,则点击添加 Firebase),开始为您的项目配置资源。这通常需要几分钟的时间。此过程完成后,您就会看到项目概览。

Android

  1. 点击将 Firebase 添加到您的 Android 应用,然后按设置步骤操作。如果您是导入现有 Google 项目,系统可能会自动执行这些操作,您只需下载配置文件即可。
  2. 看到提示时,输入应用的软件包名称。请务必输入应用在使用的软件包名称;只有在将应用添加到 Firebase 项目时您才能进行此设置。
  3. 在此过程中,您要下载一个 google-services.json 文件。您可以随时重新下载此文件
  4. 添加初始化代码后,运行您的应用以便向 Firebase 控制台发送验证信息,证明您已成功安装 Firebase。

iOS

  1. 点击将 Firebase 添加到您的 iOS 应用,然后按设置步骤操作。如果您是导入现有 Google 项目,系统可能会自动执行这些操作,您只需下载配置文件即可。
  2. 看到提示时,输入应用的软件包 ID。请务必输入应用在使用的软件包 ID;只有在将应用添加到 Firebase 项目时您才能进行此设置。
  3. 在此过程中,您要下载一个 GoogleService-Info.plist 文件。您可以随时重新下载此文件
  4. 添加初始化代码后,运行您的应用以便向 Firebase 控制台发送验证信息,证明您已成功安装 Firebase。
  5. 将从 Firebase 控制台下载的 GoogleService-Info.plist 拖动到 Unity 项目中的任意文件夹内。

将 Firebase Unity SDK 添加到您的应用

  1. 下载 Firebase Unity SDK
  2. 选择“Assets > Import Package > Custom Package”菜单项。
  3. 从之前下载的 Firebase Unity SDK 导入 FirebaseRemoteConfig.unitypackage 软件包。
  4. 当出现 Import Unity Package 窗口时,点击 Import 按钮。

初始化 SDK

Android 版 Firebase Unity SDK 需要使用 Google Play 服务。您必须先将 Google Play 服务更新为最新版本,然后才能使用该 SDK。您应在应用开头处添加以下代码,以便检查 Google Play 服务版本是否符合 Firebase Unity SDK 的要求,并视情况将其更新为相应版本,然后再调用 SDK 中的任何其他方法。

Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
  var dependencyStatus = task.Result;
  if (dependencyStatus == Firebase.DependencyStatus.Available) {
    // Create and hold a reference to your FirebaseApp, i.e.
    //   app = Firebase.FirebaseApp.DefaultInstance;
    // where app is a Firebase.FirebaseApp property of your application class.

    // Set a flag here indicating that Firebase is ready to use by your
    // application.
  } else {
    UnityEngine.Debug.LogError(System.String.Format(
      "Could not resolve all Firebase dependencies: {0}", dependencyStatus));
    // Firebase Unity SDK is not safe to use here.
  }
});

构建您的应用

Android

  1. 依次选择 File > Build Settings 菜单选项。
  2. 选择 Platform 列表中的 Android
  3. 点击 Switch Platform,选择 Android 作为目标平台。
  4. 等待 Unity 状态栏右下角的旋转进度条(正在构建)图标停止旋转。
  5. 点击 Build and Run

iOS

  1. 依次选择 File > Build Settings 菜单选项。
  2. 选择 Platform 列表中的 iOS
  3. 点击 Switch Platform,选择 iOS 作为目标平台。
  4. 等待 Unity 状态栏右下角的旋转进度条(正在构建)图标停止旋转。
  5. 点击 Build and Run

设置应用内默认参数值

您可以在远程配置对象中设置应用内默认参数值,使您的应用可以在未从服务中检索到任何值时使用默认值。同时,使您的应用在连接至远程配置服务之前可以按预期工作。

为实现上述目标,请创建一个新的字符串字典,并在其中填充一些键值对,以代表您要添加的默认参数值。(当调用 SetDefaults 时,非字符串属性将被转化为属性类型。)

System.Collections.Generic.Dictionary defaults =
  new System.Collections.Generic.Dictionary();

// These are the values that are used if we haven't fetched data from the
// service yet, or if we ask for values that the service doesn't have:
defaults.Add("propertyname_string", "default local string");
defaults.Add("propertyname_int", 1);
defaults.Add("propertyname_float", 1.0);
defaults.Add("propertyname_bool", false);

Firebase.RemoteConfig.FirebaseRemoteConfig.SetDefaults(defaults);

获取要在应用中使用的参数值

现在,您可以从远程配置对象中获取参数值。若您在远程配置服务中设置、提取并激活了值,这些值便可以供您的应用使用。否则,您需要获取使用 setDefaults() 配置的应用内参数值。

要获取这些值,请使用 GetValue(),以参数形式提供参数键。这将返回一个 ConfigValue,其中包含将值转换为各种基类型的属性。

在 Firebase 控制台中关联您的应用

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

在服务中设置参数值(若需要)

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

从服务中提取和激活值(若需要)

要从远程配置服务提取参数值,请调用 FetchAsync() 方法。系统将提取您在远程配置服务中设置的所有值,并缓存在远程配置对象中。

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

(可选)启用开发者模式

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

发送以下问题的反馈:

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