Javascript 使用firebase重定向后保留用户

Javascript 使用firebase重定向后保留用户,javascript,firebase,firebase-authentication,Javascript,Firebase,Firebase Authentication,我目前正在使用firebase on web进行一个附带项目,该项目使用用户身份验证。我让用户登录,然后创建一个游戏室,重定向到游戏“房间”的单独页面。在页面重定向之后,虽然我无法提取任何用户数据,但我这样做的唯一方法是重新初始化firebase并使用 auth.onAuthStateChanged(function(user) { if (user && user != null) { uid = user.uid; email = user.email;

我目前正在使用firebase on web进行一个附带项目,该项目使用用户身份验证。我让用户登录,然后创建一个游戏室,重定向到游戏“房间”的单独页面。在页面重定向之后,虽然我无法提取任何用户数据,但我这样做的唯一方法是重新初始化firebase并使用

auth.onAuthStateChanged(function(user) {
  if (user && user != null) {
    uid = user.uid;
    email = user.email;
    currUser = user;
  } else {
    //user isnt logged in
    window.location.href = 'index.html';
  }

似乎有一种更简单的方法可以做到这一点,但我似乎无法让它工作,而且这种方法也会弄乱我其他代码的部分

附加一个
onAuthStateChanged
回调是获取用户的惯用方法

您还可以使用
firebase.auth().currentUser
获取用户。但如果需要令牌刷新,在这种情况下,您可能会错误地检测到没有用户。这就是为什么建议使用
onAuthStateChanged
回调的原因


请参阅。

因此,如果firebase.auth(),我必须使用onAuthStateChanged。currentUser不起作用?我通常使用
onAuthStateChanged
来更新用户已登录的UI。我仅在可以确定用户已登录的流中使用
firebase.auth().currentUser
。调用
firebase.auth().currentUser
然后检查结果是否存在是一种反模式,根据我的经验,代码应该位于
onAuthStateChanged
侦听器中。