将 Firebase 添加到您的 Unity 项目

利用我们的 Firebase Unity SDK 为您的 Unity 游戏注入强劲动力。

为了说明将 Firebase 添加至您的 Unity 项目中有多么容易,我们开发了一款示例游戏《MechaHamster》。如果您想尝试将 Firebase 添加到游戏中,请使用 GitHub 上的入门版。如果您想获取完整版本,请查看 App StoreGoogle Play 商店中的版本。

MechaHamster (GitHub)

MechaHamster (App Store)

MechaHamster(Play 商店)


如需详细了解如何使用 Firebase 为您的游戏提供强力支持,请访问我们的 Firebase 游戏页面

已将 Firebase 添加到您的 Unity 项目?确保您使用的是最新版 Firebase Unity SDK

前提条件

  • 安装 Unity 2019.1 或更高版本。更早的版本也可能兼容,但不享受积极支持。对 Unity 2019.1 的支持被视为已弃用,并将在下一个主要版本之后不再享受积极支持。

  • (仅限 Apple 平台)安装以下各项:

    • Xcode 13.3.1 或更高版本
    • CocoaPods 1.12.0 或更高版本
  • 确保您的 Unity 项目满足以下要求:

    • 对于 iOS - 目标为 iOS 11 或更高版本
    • 对于 tvOS - 目标为 tvOS 12 或更高版本
    • 对于 Android - 目标为 API 级别 19 (KitKat) 或更高级别
  • 设置一台实体设备或使用模拟器运行您的应用。

    • 对于 Apple 平台 - 设置实体设备或使用 iOS 或 tvOS 模拟器。

    • 对于 Android - 模拟器必须使用包含 Google Play 的模拟器映像。

如果您还没有 Unity 项目,只是想试用某一 Firebase 产品,可以下载我们的快速入门示例

第 1 步:创建 Firebase 项目

您必须创建一个 Firebase 项目以关联到 Unity 项目,然后才能将 Firebase 添加到该 Unity 项目。请访问了解 Firebase 项目以了解详情。

第 2 步:在 Firebase 中注册您的应用

您可以注册一个或多个应用或游戏,以便将其与 Firebase 项目关联。

  1. 前往 Firebase 控制台

  2. 在项目概览页面的中心位置,点击 Unity 图标 () 以启动设置工作流。

    如果您已向 Firebase 项目添加了应用,请点击添加应用以显示平台选项。

  3. 选择您要注册的 Unity 项目的 build 目标,甚至可以选择同时注册两个目标。

  4. 输入 Unity 项目针对具体平台的 ID。

    • 对于 iOS - 在 iOS 软件包 ID 字段中输入您的 Unity 项目的 iOS ID。

    • 对于 Android - 在 Android 软件包名称字段中输入您的 Unity 项目的 Android ID。
      “软件包名称”和“应用 ID”这两个术语通常可互换使用。

  5. (可选)输入 Unity 项目针对具体平台的别名。
    这些别名是方便内部使用的标识符,只有您能在 Firebase 控制台中看到。

  6. 点击注册应用

第 3 步:添加 Firebase 配置文件

  1. 在 Firebase 控制台设置工作流中,获取针对具体平台的 Firebase 配置文件。

    • 对于 iOS - 点击下载 GoogleService-Info.plist

    • 对于 Android - 点击下载 google-services.json

  2. 打开 Unity 项目的 Project(项目)窗口,然后将您的配置文件移到 Assets 文件夹中。

  3. 返回 Firebase 控制台,在设置工作流中,点击下一步

第 4 步:添加 Firebase Unity SDK

  1. 在 Firebase 控制台中,点击下载 Firebase Unity SDK,然后将此 SDK 解压缩到方便的位置。

    • 您可以随时再次下载 Firebase Unity SDK

    • Firebase Unity SDK 不局限于特定平台。

  2. 在您打开的 Unity 项目中,依次点击 Assets(资产)> Import Package(导入软件包)> Custom Package(自定义软件包)。

  3. 从解压缩的 SDK 中,选择您希望在应用中使用且受支持的 Firebase 产品

    已启用 Analytics(分析)

    • 添加支持 Google Analytics(分析)的 Firebase 软件包:FirebaseAnalytics.unitypackage
    • 为要在应用中使用的任何其他 Firebase 产品添加软件包。例如,要使用 Firebase Authentication 和 Firebase Realtime Database,需要添加以下软件包:
      FirebaseAuth.unitypackageFirebaseDatabase.unitypackage

    未启用 Analytics(分析)

    为要在应用中使用的 Firebase 产品添加软件包。例如,要使用 Firebase Authentication 和 Firebase Realtime Database,需要添加以下软件包:
    FirebaseAuth.unitypackageFirebaseDatabase.unitypackage

  4. 在“Import Unity Package”(导入 Unity 软件包)窗口中,点击 Import(导入)。

  5. 返回 Firebase 控制台,在设置工作流中,点击下一步

第 5 步:确认 Google Play 服务版本要求

Android 版 Firebase Unity SDK 需要使用 Google Play 服务。您必须先将 Google Play 服务更新为最新版本,然后才能使用该 SDK。

在应用的开头添加以下 using 语句和初始化代码。在调用 SDK 中的任何其他方法之前,您可在此代码段中检查 Google Play 服务版本是否符合 Firebase Unity SDK 的要求,并视情况将其更新为相应版本。

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

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

大功告成!您的 Unity 项目已注册,并配置为使用 Firebase。

如果您在设置时遇到问题,请参阅 Unity 问题排查和常见问题解答

设置桌面工作流(Beta 版

在构建游戏时,建议在开发时先在 Unity 编辑器中和桌面平台上测试您的游戏,然后再在移动设备上进行部署和测试,因为这样往往容易很多。为了支持这一工作流,我们提供了可在 Windows、macOS、Linux 上以及 Unity 编辑器中运行的部分 Firebase Unity SDK

  1. 按照与移动平台相同的说明设置桌面平台 Unity 项目(从上面的在 Firebase 中注册您的应用步骤开始)。

  2. 在 Unity IDE 中运行您的 Unity 项目,或选择构建桌面平台的 Unity 项目。

  3. (可选)在编辑模式下运行 Unity 项目。

    Firebase Unity SDK 也可以在 Unity 的编辑模式下运行,因此可供在编辑器插件中使用。

    1. 创建供编辑器使用的 FirebaseApp 时,请勿使用默认实例。

    2. 请改为在进行 FirebaseApp.Create() 调用时提供一个唯一的名称。

      这一点很重要,因为这样可避免 Unity IDE 使用的实例与 Unity 项目使用的实例之间发生选项冲突。

受支持的 Firebase 产品

如需详细了解 Unity Firebase 库,请查看参考文档

适用于移动设备的 Firebase 可用库

Firebase Unity SDK 在 Apple 和 Android 上支持以下 Firebase 产品:

Firebase 产品 Unity 软件包
AdMob 在 AdMob Unity 插件中单独分发
Analytics FirebaseAnalytics.unitypackage
App Check FirebaseAppCheck.unitypackage
Authentication FirebaseAuth.unitypackage
Cloud Firestore FirebaseFirestore.unitypackage
Cloud Functions FirebaseFunctions.unitypackage
Cloud Messaging FirebaseMessaging.unitypackage
(推荐)FirebaseAnalytics.unitypackage
Cloud Storage FirebaseStorage.unitypackage
Crashlytics FirebaseCrashlytics.unitypackage
(推荐)FirebaseAnalytics.unitypackage
Dynamic Links FirebaseDynamicLinks.unitypackage
(推荐)FirebaseAnalytics.unitypackage
Realtime Database FirebaseDatabase.unitypackage
Remote Config FirebaseRemoteConfig.unitypackage
(推荐)FirebaseAnalytics.unitypackage

适用于桌面设备的 Firebase 可用库

Firebase Unity SDK 为部分产品提供桌面工作流支持,让您可以在 Unity 编辑器中以及 Windows、macOS 和 Linux 的独立桌面版本中使用 Firebase 的某些部分。

Firebase 产品(桌面) Unity 软件包
App Check FirebaseAppCheck.unitypackage
Authentication FirebaseAuth.unitypackage
Cloud Functions FirebaseFunctions.unitypackage
Cloud Firestore FirebaseFirestore.unitypackage
Cloud Storage FirebaseStorage.unitypackage
Realtime Database FirebaseDatabase.unitypackage
Remote Config FirebaseRemoteConfig.unitypackage

Firebase 以 Stub(非函数)实现提供其余的桌面库,以方便您针对 Windows、macOS 和 Linux 进行构建。这样一来,您就不必再针对桌面平台专门编译代码。

后续步骤