Firebase 3 - ref.getAuth() 等效
Firebase 3 - ref.getAuth() equivalent
在 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
发生并且用户登录。
还有办法同步检查吗?或者是否有我可以听取的承诺,以便我可以显示加载微调器或其他东西?谢谢。
我一直在使用身份验证状态侦听器来确定用户是否已登录。
auth.onAuthStateChanged(function(user) {
console.log('authStateChanged', user);
if (user) {
console.log("Welcome UID:" + user.uid);
}
});
当您立即附加该侦听器时,它将以正确的状态触发。
当我 运行 应用程序登录并重新加载页面时,日志输出:
authStateChanged Fl {...}
Welcome UID:052289713245805425655890E9024AB4ADBA5404B3C0
因此您可以在第一次调用侦听器时检测用户是否已登录。
我遇到了同样的问题,因为我使用的是 Angular,所以我在 AngularFire 中发现了一个同步调用 $getAuth()。 https://github.com/firebase/angularfire/blob/master/docs/reference.md#getauth
也许 ReactFire 库中也有一个等价物。 :)
在 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
发生并且用户登录。
还有办法同步检查吗?或者是否有我可以听取的承诺,以便我可以显示加载微调器或其他东西?谢谢。
我一直在使用身份验证状态侦听器来确定用户是否已登录。
auth.onAuthStateChanged(function(user) {
console.log('authStateChanged', user);
if (user) {
console.log("Welcome UID:" + user.uid);
}
});
当您立即附加该侦听器时,它将以正确的状态触发。
当我 运行 应用程序登录并重新加载页面时,日志输出:
authStateChanged Fl {...}
Welcome UID:052289713245805425655890E9024AB4ADBA5404B3C0
因此您可以在第一次调用侦听器时检测用户是否已登录。
我遇到了同样的问题,因为我使用的是 Angular,所以我在 AngularFire 中发现了一个同步调用 $getAuth()。 https://github.com/firebase/angularfire/blob/master/docs/reference.md#getauth
也许 ReactFire 库中也有一个等价物。 :)