【发布时间】:2020-07-06 21:57:47
【问题描述】:
我正在创建一个依赖 Firebase 身份验证并使用 Google 身份验证的网站。 用户在单独的页面上登录后,我的网站会根据登录的用户将用户重定向到加载窗口的“主页”。
但是,如果我检查“window.onload”中是否存在登录用户,它总是错误的。 相反,如果我运行一个异步函数,然后在 ".then" 之后检查登录用户,我会返回 true。
这让我假设“window.onload”的触发速度比页面识别登录用户的速度要快。
如何解决此问题并确保在我调用异步函数之前加载登录用户? 我很确定 firebase.auth() 本身是异步的,但由于某种原因 .then 似乎无法使用它。
<script>
window.onload = loadPage();
function loadPage()
{
var user = firebase.auth().currentUser;
if(user)
console.log("userFound before async"); //Does NOT console log
asyncFunction().then(function()
{
var user = firebase.auth().currentUser;
if(user)
console.log("userFound after async"); //Does console log
})
}
</script>
【问题讨论】:
标签: javascript firebase firebase-authentication google-authentication