Firebase 实时数据库使用入门 (Unity)

Firebase 实时数据库使用 NoSQL 云端数据库存储和同步数据。数据会实时同步到所有客户端,而且即便您的应用处于离线状态,数据也仍然可供使用。

开始前的准备工作

您必须先创建一个 Firebase 项目,并将 Firebase Unity SDK 软件包添加到您的 Unity 项目中,然后才能使用 Firebase 实时数据库

设置:

前提条件

Android

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

iOS

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

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

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

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

如果您还没有 Firebase 项目,请在 Firebase 控制台中创建一个。如果您已经有与自己的移动应用相关联的现有 Google 项目,请点击导入 Google 项目。如果没有,请点击添加项目

Android

  1. 点击将 Firebase 添加到您的 Android 应用,然后按设置步骤操作。如果您是导入现有 Google 项目,系统可能会自动执行这些操作,您只需下载配置文件即可。
  2. 出现提示时,输入应用的软件包名称。请务必输入应用在使用的软件包名称;只有在将应用添加到 Firebase 项目时您才能进行此设置。
  3. 按照说明下载 google-services.json 文件。您随时可以再重新下载此文件
  4. 将此文件复制到项目的资源文件夹内的任意位置。

iOS

  1. 点击将 Firebase 添加到您的 iOS 应用,然后按设置步骤操作。如果您是导入现有 Google 项目,系统可能会自动执行这些操作,您只需下载配置文件即可。
  2. 出现提示时,输入应用的软件包 ID。请务必输入应用在使用的软件包 ID;只有在将应用添加到 Firebase 项目时您才能进行此设置。
  3. 按照说明下载 GoogleService-Info.plist 文件。您随时可以再重新下载此文件
  4. GoogleService-Info.plist 文件添加到项目中。

    • 将从 Firebase 控制台下载的 GoogleService-Info.plist 拖动到 Unity 项目中的任意文件夹内。

将 Firebase Unity SDK 添加到您的应用

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

编译您的应用

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

设置公共访问

实时数据库提供了声明性规则语言,可用于定义应该如何将数据结构化、如何将数据编入索引以及何时可以读取和写入数据。默认情况下,对数据库的读写权限是有限制的,只有通过身份验证的用户才能读写数据。要在不设置身份验证的情况下开始使用数据库,您可以将您的规则配置为允许公共访问。这会使得您的数据库向所有人开放,包括不使用您的应用的用户,因此在设置身份验证时,请务必重新限制对您的数据库的访问权限。

为 Unity 编辑器配置 SDK。

在 Unity 编辑器中测试场景时,可以使用实时数据库。您必须使用正确的数据库网址配置 SDK。使用您的数据库的网址调用 SetEditorDatabaseUrl。

using Firebase;
using Firebase.Unity.Editor;

public class MyScript: MonoBehaviour {
  void Start() {
    // Set this before calling into the realtime database.
    FirebaseApp.DefaultInstance.SetEditorDatabaseUrl("https://YOUR-FIREBASE-APP.firebaseio.com/");
  }
}

如果您已选择对规则开放公共访问权限,并设置了数据库网址,则可转至有关保存和检索数据的部分。

可选。针对受限访问权限的编辑器设置。

如果您选择使用不允许公共访问的规则,则需要将 SDK 配置为使用服务帐号在 Unity 编辑器中运行。这也使得您可以在测试期间模拟最终用户。为实现此目的,首先要通过以下网址创建一个新的 p12 文件:

https://console.cloud.google.com/iam-admin/serviceaccounts/project?project=YOUR-FIREBASE-APP

记录为服务帐号生成的电子邮件地址和密码。

将 p12 文件放在 Unity 项目中的“Editor Default Resources”下。接下来,添加以下代码以对服务帐号的使用进行初始化。

using Firebase;
using Firebase.Unity.Editor;

public class MyScript: MonoBehaviour {
  void Start() {
    // Set these values before calling into the realtime database.
    FirebaseApp.DefaultInstance.SetEditorDatabaseUrl("https://YOUR-FIREBASE-APP.firebaseio.com/");
    FirebaseApp.DefaultInstance.SetEditorP12FileName("YOUR-FIREBASE-APP-P12.p12");
    FirebaseApp.DefaultInstance.SetEditorServiceAccountEmail("SERVICE-ACCOUNT-ID@YOUR-FIREBASE-APP.iam.gserviceaccount.com");
    FirebaseApp.DefaultInstance.SetEditorP12Password("notasecret");
  }
}

后续步骤

已知问题

  • 在使用实验性 .NET 4.6 框架时,Firebase 实时数据库无法在 macOS 上与 Unity 2017.2 配合使用,原因是 2017.2.0 版本中出现了一个回归问题,这会在该配置中破坏 SslStream。2017.3.0 版本修复了该回归问题,因此 Firebase 实时数据库可与该版本配合使用。

发送以下问题的反馈:

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