将 Firebase 添加至您的 Unity 项目plat_iosplat_androidplat_unity

概览

利用我们的 Firebase Unity SDK 推动您的 Unity 游戏的发展。

  • 借助 Analytics 了解玩家怎样玩您的游戏、花了多长时间玩、通关用了多长时间、购买了多少应用内内容等。
  • 利用动态链接,让玩家可相互分享自定义关卡、游戏内物品和游戏邀请等内容。

  • 使用云消息传递,您可以发布新内容,并向已经玩通所有现有游戏关卡的玩家发送推送通知。

  • 通过远程配置即时调整游戏玩法设置,例如敌人密度、充能频率,或您想控制的其他任何方面。

  • 实时数据库可将用户生成的内容(如自定义地图)安全地存储在云端。

  • 借助我们的安全服务,使用 Cloud Storage 向玩家提供可下载的内容。

  • 借助 Cloud Functions,您可以运行后端代码,以响应由 Firebase 功能和客户端请求触发的事件。

下载 SDK


如需详细了解如何推动您的游戏的发展,请访问我们的 Firebase 游戏页面

功能

Firebase Unity SDK 在 iOSAndroid 上支持以下功能:

功能 Unity 软件包
AdMob AdMob Unity 插件中单独分发
Analytics FirebaseAnalytics.unitypackage
身份验证 FirebaseAuth.unitypackage
实时数据库 FirebaseDatabase.unitypackage
动态链接 FirebaseDynamicLinks.unitypackage
Cloud Functions FirebaseFunctions.unitypackage
邀请 FirebaseInvites.unitypackage
云消息传递 FirebaseMessaging.unitypackage
远程配置 FirebaseRemoteConfig.unitypackage
云端存储 FirebaseStorage.unitypackage

Firebase Unity SDK 包含对一部分功能的桌面工作流支持,因此支持在 Unity 编辑器中以及用于 Windows、OS X 和 Linux 的独立桌面版本中使用 Firebase 的某些部分。(测试版

示例游戏:MechaHamster

为了说明将 Firebase 添加到您的 Unity 项目中有多么容易,我们开发了一款示例游戏《MechaHamster》,您可以从 GitHubApp StoreGoogle Play 商店下载这款游戏(请参见以下链接)

MechaHamster GitHub MechaHamster App Store MechaHamster Play 商店

针对 iOS 进行设置

前提条件

  • Unity 5.3 或更高版本。
  • Xcode 8.0 或更高版本。
  • 针对云消息传递:
    • 一台 iOS 真机设备
    • 已启用推送通知功能的 APN 证书
  • CocoaPods 1.2.0 或更高版本。
  • 一个 Unity 项目软件包标识符。

如果您还没有 Unity 项目,并且只是想试用某项 Firebase 功能,则可以下载我们的一个快速入门示例。如果使用快速入门,请不要忘记从项目设置中获取软件包标识符;您需要在下一步中使用该标识符。

将 Firebase 添加至您的应用

现在需要将 Firebase 添加至您的应用。要执行此操作,您需要有一个 Firebase 项目和适用于您的应用的 Firebase 配置文件。

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

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

创建项目之后,您就可以向其中添加 iOS 应用了:

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

将 SDK 添加至您的应用

  1. 如果还没有 Unity 项目,请立即创建一个。您也可以使用我们的某个快速入门示例来试用 Firebase 功能。
  2. 下载 Firebase Unity SDK 并将其解压缩到方便的位置。
  3. 在 Unity 编辑器中打开您的 Unity 项目。

    • 依次选择 File > Open Project 菜单项。
    • 点击 Open
    • 在文件对话框中定位到应用目录并点击 Open
  4. 导入 Firebase 功能插件,例如 Firebase Analytics

    • 依次选择 Assets > Import Package > Custom Package 菜单项。
    • 从之前下载的 Firebase Unity SDK 导入 FirebaseAnalytics.unitypackage
    • 出现 Import Unity Package 窗口时,点击 Import
  5. GoogleService-Info.plist 文件添加到项目中。

    • 转至 Project 窗口中的 Assets 文件夹。
    • 将从 Firebase 控制台下载的 GoogleService-Info.plist 拖到文件夹内。
      • 注意:GoogleService-Info.plist 可以放入 Assets 文件夹内的任意位置。
  6. 针对 iOS 进行编译

    • 选择 File > Build Settings 菜单选项。
    • 选择 Platform 列表中的 iOS
    • 点击 Switch Platform,选择 iOS 作为目标平台。
    • 等待 Unity 状态栏右下角的旋转进度条(正在编译)图标停止旋转。
    • 点击 Build and Run

针对 Android 进行设置

  • Unity 5.3 或更高版本。
  • 运行 Android 4.0 (Ice Cream Sandwich) 或更高版本的设备。
  • 一个 Unity 项目软件包标识符。

如果您还没有 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。

将 SDK 添加至您的应用

  1. 如果还没有 Unity 项目,请立即创建一个。您也可以使用我们的某个快速入门示例来试用 Firebase 功能。
  2. 下载 Firebase Unity SDK 并将其解压缩到方便的位置。
  3. 在 Unity 编辑器中打开您的 Unity 项目。

    • 依次选择 File > Open Project 菜单项。
    • 点击 Open
    • 在文件对话框中定位到应用目录并点击 Open
  4. 导入 Firebase 功能插件,例如 Firebase Analytics

    • 依次选择 Assets > Import Package > Custom Package 菜单项。
    • 从之前下载的 Firebase Unity SDK 导入 FirebaseAnalytics.unitypackage
    • 出现 Import Unity Package 窗口时,点击 Import
  5. google-services.json 文件添加到项目中。

    • 转至 Project 窗口中的 Assets 文件夹。
    • 将从 Firebase 控制台下载的 google-services.json 拖到文件夹内。
      • 注意:google-services.json 可以放入 Assets 文件夹内的任意位置。
  6. 针对 Android 进行编译

    • 选择 File > Build Settings 菜单选项。
    • 选择 Platform 列表中的 Android
    • 点击 Switch Platform,选择 Android 作为目标平台。
    • 等待 Unity 状态栏右下角的旋转进度条(正在编译)图标停止旋转。
    • 点击 Build and Run

桌面工作流实现(测试版功能)

在构建应用时,建议在开发时先在 Unity 编辑器中和桌面平台上测试您的应用,然后再在移动设备上进行部署和测试,因为这样往往更轻松。为了支持这种工作流,我们提供了可在 Windows、OS X、Linux 上以及 Unity 编辑器中运行的一部分 Firebase Unity SDK 功能:

支持桌面设备的功能
身份验证 FirebaseAuth.unitypackage
Cloud Functions FirebaseFunctions.unitypackage
实时数据库 FirebaseDatabase.unitypackage
远程配置 FirebaseRemoteConfig.unitypackage
云端存储 FirebaseStorage.unitypackage

其余的桌面库是 Stub(非函数)实现,我们提供这些实现以方便针对 Windows、OS X 和 Linux 进行编译,让您不必在也定位至桌面平台时专门编译代码。

桌面项目设置

要使用桌面工作流支持,您必须在 Firebase 控制台中设置 Android 或 iOS 项目。

按照针对 Android 进行设置针对 iOS 进行设置的说明在您的应用中设置 Firebase Unity SDK。

Firebase 会自动在您的项目中使用 GoogleService-Info.plistgoogle-services.json 文件,以便在 Unity 编辑器中或针对桌面设备的版本中运行您的应用时设置该应用。

在修改模式下运行

Firebase Unity SDK 也可以在 Unity 的修改模式下运行,因此可供在编辑器插件中使用。在创建供编辑器使用的 FirebaseApp 时,请勿使用默认实例,而应为 FirebaseApp.Create() 调用提供唯一的名称。这一点很重要,因此这样可避免在 Unity 编辑器使用的实例和应用使用的实例之间发生选项冲突。

关于 Firebase Unity SDK 桌面支持的说明

Firebase Unity SDK 桌面支持是一项测试版功能,仅适用于在应用开发过程中使用的工作流,而不适用于公开发布代码。

已知问题

在 Unity 2017.x .NET 4.x 项目中安装插件

在 Unity 2017 及更高版本中,对 .NET 4.x 的支持是作为一种实验性编译选项提供的。Firebase 插件使用 Parse SDK 的组件在早期版本的 .NET 中提供一些 .NET 4.x 类。因此,将 Firebase 导入启用了 .NET 4.x 的项目中时,您会在 .NET 4.x 框架中看到由 Parse SDK 实现的某些类型中存在编译错误。

要解决编译错误,请执行以下操作:

  1. 针对所有平台移除或停用以下 DLL:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll
  2. 针对所有平台启用以下 DLL:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll

如果您导入另一个 Firebase 插件:

  • 依次选择菜单项 Assets > Play Services Resolver > Version Handler > Update 以重新启用 .NET 4.x DLL 并停用 .NET 3.x DLL。

.NET 4.x 项目中的 Unity 2017.1 IL2CPP 编译

在 Unity 2017 及更高版本中,对 .NET 4.x 的支持是作为一种实验性编译选项提供的。Firebase 插件使用 Parse SDK 的组件在早期版本的 .NET 中提供一些 .NET 4.x 类。提供的类型转发 DLL 会将 Parse 类型(例如 Parse 实现的 System.Threading.Tasks.Task)转发给 .NET framework。遗憾的是,在 Unity 2017.1.x 中提供的 IL2CPP(将 C# 转换为 C++ 的转译器)无法正确处理类型转发 DLL,因而会导致如下编译错误:

Fatal error in Unity CIL Linker Mono.Cecil.ResolutionException: Failed to resolve System.Threading.Tasks.TaskCompletionSource1`

Unity 2017.1 中的 .NET 4.x IL2CPP 编译错误目前没有解决办法。用户必须升级到 2017.2 或更高版本才能在以 IL2CPP 编译的项目中使用 .NET 4.x。

Unity 2017.2 网络

实时数据库通过 .NET 网络堆栈创建 TLS 网络连接。使用 .NET 4.6 时,Unity 2017.2 中的 TLS 功能会受到影响,从而导致实时数据库插件无法在编辑器和桌面上运行。此问题没有任何解决方法,您必须使用其他版本的 Unity(例如 2017.1 或 2017.3)。

支持

Firebase 支持

发送以下问题的反馈:

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