您可以用 Firebase Authentication 创建和使用临时匿名帐号来进行 Firebase 身份验证。借助临时匿名帐号,尚未注册您应用的用户也可以使用受安全规则保护的数据。如果匿名用户决定注册您的应用,您可以将他们的登录凭据与匿名帐号关联,这样他们就可以在以后的会话中继续使用其受保护的数据。
准备工作
-
您必须先将 Firebase Unity SDK(具体而言就是
FirebaseAuth.unitypackage
)添加至您的 Unity 项目中,然后才能使用 Firebase Authentication。如需查找关于这些初始设置步骤的详细说明,请参阅将 Firebase 添加至您的 Unity 项目。
- 如果您尚未将您的应用与 Firebase 项目关联,请在 Firebase 控制台中进行关联。
- 启用匿名身份验证:
- 在 Firebase 控制台中,打开身份验证部分。
- 在登录方法页面中,启用匿名登录方法。
匿名进行 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); });
将匿名帐号转成永久帐号
当匿名用户注册您的应用时,您可能需要允许其使用新帐号继续之前的操作。例如,您可能需要将用户在注册之前添加到购物车中的商品移到其新帐号的购物车中。为此,请完成以下步骤:
- 当用户注册时,按照用户身份验证提供方的登录流程逐步进行,直到需要调用某一方法时停止。例如,获取用户的 Google ID 令牌、Facebook 访问令牌或电子邮件地址和密码。
为新的身份验证提供方获取 AuthCredential:
将 AuthCredential 对象传递给登录用户的 linkWithCredential 方法:
如果调用成功,用户的新帐号就可以访问匿名帐号的 Firebase 数据了。
后续步骤
在用户可以进行 Firebase 身份验证后,您可以使用 Firebase 规则控制用户对 Firebase 数据库的访问权限。