在 Firebase 2 中,我能够进行同步检查以查看用户是否已登录,例如:
if (!ref.getAuth()) ..go to login page
else ..show page
我可以使用 firebase.auth().currentUser
访问 currentUser
状态,所以我尝试这样做:
if (!firebase.auth().currentUser) ..go to login page
else ..show page
问题是它最初总是空的,所以它重定向到登录页面,然后几分钟后 onAuthStateChanged
发生并且用户登录。
还有办法同步检查这个吗?或者是否有我可以听取的 promise ,以便我可以显示加载微调器或其他东西?谢谢。
最佳答案
我一直在使用身份验证状态监听器来确定用户是否已登录。
auth.onAuthStateChanged(function(user) {
console.log('authStateChanged', user);
if (user) {
console.log("Welcome UID:" + user.uid);
}
});
当您立即附加该监听器时,它将以正确的状态触发。
当我运行应用程序、登录并重新加载页面时,日志输出:
authStateChanged Fl {...}
Welcome UID:052289713245805425655890E9024AB4ADBA5404B3C0
因此您可以使用第一次调用监听器来检测用户是否已经登录。
关于javascript - Firebase 3 - ref.getAuth() 等效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37367640/