在Firebase上检查用户是否已登录的最快选择是什么?

3

我目前正在检查客户端是否已登录用户,使用的方法是:

最初的回答:

我正在使用以下方式来检查客户端是否已登录用户:

firebase.auth().onAuthStateChanged(function (user)
{
}

然而,该方法需要在页面加载后1-2秒才能被调用,我想知道是否有更快的方法来检查用户是否已登录?我正在使用这种方法来检查用户是否有权限进入网站上的特定页面,但目前他们可以在重定向到主页之前查看其内容,这不应该发生。因此,我希望有一个更快的替代方法。"最初的回答"
1个回答

0
你可以尝试使用我之前用来在用户登录后立即执行特定代码的方法(通过执行一个快速循环来测试用户数据,避免等待)。
var int = setInterval(()=>{
 firebase.auth().currentUser ?
 // you can do whatever you want immediately when the user is logged
 // and then clear the interval;
 clearInterval(int) 
 : '' 
  }
},10)

平均执行时间需要多长?我很好奇,因为我不知道使用观察者与否会有多大的区别。 - undefined
@danwillm 这个不是同步的,所以平均而言,它所需的时间要比普通请求少得多... 这种方法的另一个优点是,你可以在用户登录时访问页面(可用数据),而不会出现错误。此外,如果用户数据不存在,你还可以使用计数器在所需的时间后清除间隔。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接