经过进一步阅读和思考,我意识到虽然它仍然在文档中,dataRef.auth
但不再需要。创建一个new FirebaseAuthClient
基本上取代了它。
最近改动之前,new FirebaseAuthClient
没有带回调函数。要进行身份验证,您必须调用dataRef.auth
.
现在,当您实例化 a 时new FirebaseAuthClient
,就会尝试进行身份验证。以前可用于dataRef.auth
回调的信息现在可用于您提供给的新回调new FirebaseAuthClient
。
然而,它略有不同。dataRef.auth
版本是这样的:
dataRef.auth(authtoken, function(success) { ... });
FirebaseAuthClient
版本是这样的:
var authClient = new FirebaseAuthClient(dataRef, function(error, user) { ... });
所以在新的做事方法中,你不只是得到一个success
布尔值(它被一个对象代替),如果身份验证成功error
,你也会得到一个对象。user
在此更改之前,如果用户已成功通过身份验证并且您想获取他们的信息,则必须将其从 localStorage 或其他内容中提取出来。现在它只是在回调中为您提供,这是一个很好的变化。
此外,token
过去传递给authClient.login
函数的参数现在是用户数据的一部分,如user.firebaseAuthToken
.
与此更新密切相关的是对authClient.login
工作方式的更改。它不再需要回调,而是触发传递给new FirebaseAuthClient
.
实际上,该回调似乎是您需要为任何FirebaseAuthClient
更改身份验证状态的函数设置的唯一回调。登录和注销等特定FirebaseAuthClient
功能只会更改身份验证状态,并将依赖于原始回调。
此外,您似乎不再需要跟踪用户的 authToken 来对其进行身份验证。过去的情况是authClient.login
使用参数调用其回调token
,然后您将存储该令牌并将其用于dataRef.auth(token, some_callback)
,但这不再是必需的,因为dataRef.auth
它本身不再是必需的。
所以总而言之,为了回答最初的问题,现在所有的身份验证方法实际上都是同一个类的一部分 - FirebaseAuthClient。dataRef.auth
不再需要,尽管它仍在文档中,这令人困惑。
替换dataRef.auth
为new FirebaseAuthClient
,替换dataRef.auth
为authClient.logout
and 你应该被设置。
非常感谢 Firebase 工作人员就这些声明的有效性提供任何反馈。