使用 Unity 匿名进行 Firebase 身份验证

您可以使用 Firebase 身份验证功能来创建和使用临时匿名帐号,以便进行 Firebase 身份验证。借助这些临时匿名帐号,尚未注册您应用的用户可以使用受安全规则保护的数据。如果匿名用户决定注册您的应用,您可以将其登录凭据与匿名帐号关联,这样他们就可以在以后的会话中继续使用受保护的数据了。

准备工作

    您必须先创建一个 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 项目添加应用时,才能设置此 ID。
    3. 按照说明下载 GoogleService-Info.plist 文件。您随时可以再重新下载此文件
    4. GoogleService-Info.plist 文件添加到项目中。

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

    将 Firebase Unity SDK 添加到您的应用

    1. 下载 Firebase Unity SDK
    2. 依次选择 Assets > Import Package > Custom Package 菜单项。
    3. 从之前下载的 Firebase Unity SDK 导入 FirebaseAuth.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

  1. 如果您尚未将应用关联到您的 Firebase 项目,请通过 Firebase 控制台进行关联。
  2. 启用匿名身份验证:
    1. Firebase 控制台中,打开身份验证 (Authentication) 部分。
    2. 登录方法页面中,启用匿名登录方法。

匿名进行 Firebase 身份验证

当注销用户使用需要进行 Firebase 身份验证的应用功能时,请完成以下步骤,让用户匿名登录:

FirebaseAuth 类是所有 API 调用都需要通过的一道“关卡”。 此类可通过 FirebaseAuth.DefaultInstance 访问。
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
1. 调用 Firebase.Auth.FirebaseAuth.SignInAnonymouslyAsync
auth.SignInAnonymouslyAsync().ContinueWith(task => {
  if (task.IsCanceled) {
    Debug.LogError("SignInAnonymouslyAsync was canceled.");
    return;
  }
  if (task.IsFaulted) {
    Debug.LogError("SignInAnonymouslyAsync encountered an error: " + task.Exception);
    return;
  }

  Firebase.Auth.FirebaseUser newUser = task.Result;
  Debug.LogFormat("User signed in successfully: {0} ({1})",
      newUser.DisplayName, newUser.UserId);
});

将匿名帐号转成永久帐号

当匿名用户注册您的应用时,您可能需要允许其使用新帐号继续操作。例如,您可能需要将用户在注册之前添加到购物车中的商品移到其新帐号的购物车中。为此,请完成以下步骤:

  1. 当用户注册时,按照用户身份验证提供方的登录流程逐步进行,直到需要调用某一方法时停止。调用的例子包括:获取用户的 Google ID 令牌、Facebook 访问令牌或电子邮件地址和密码。
  2. 为新的身份验证提供方获取 AuthCredential:

  3. 将 AuthCredential 对象传递给登录用户的 linkWithCredential 方法:

如果调用成功,用户的新帐号就可以使用匿名帐号的 Firebase 数据了。

后续步骤

至此,用户可以进行 Firebase 身份验证,而您也可以使用 Firebase 规则控制用户对您 Firebase 数据库中的数据的访问权限。

发送以下问题的反馈:

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