这是预期的行为。由于books页面是一个新页面,Firebase SDK将需要从本地存储中恢复身份验证状态,并在本地存储中自动保持身份验证状态。这需要它向服务器打电话,例如检查帐户是否已被禁用。因为我们无法阻止页面加载,所以您的主代码将继续执行并看到这一点
currentUser
是空的。
你要做的是
监听身份验证状态
如上的文档中的第一个片段所示
getting the current user
:
firebase.auth().onAuthStateChanged((user) => {
if (user) {
// User is signed in, see docs for a list of available properties
// https://firebase.google.com/docs/reference/js/firebase.User
var uid = user.uid;
// ...
} else {
// User is signed out
// ...
}
});
当用户会话被恢复时,或当恢复失败时,或当从未有登录用户开始时,或当身份验证状态更改时,此回调将自动触发,因此是将应用程序更新为最新身份验证状态的最佳位置。