Javascript 使用Google登录在Firebase上保持登录?

Javascript 使用Google登录在Firebase上保持登录?,javascript,firebase-authentication,Javascript,Firebase Authentication,我目前正在使用Firebase,这样用户就可以使用他们的Google帐户登录以访问该应用程序。但是,在新选项卡中关闭页面/打开页面需要用户再次登录。有没有办法防止用户重新登录 下面是我正在使用的登录代码(来自firebase文档的示例) 我不确定这是否是正式的方法,但我最终将从firebase.auth().currentUser返回的用户保存在localStorage中,然后检查在加载文档时是否可以在localStorage中找到用户。如果找到一个用户,我只需将firebase.auth().

我目前正在使用Firebase,这样用户就可以使用他们的Google帐户登录以访问该应用程序。但是,在新选项卡中关闭页面/打开页面需要用户再次登录。有没有办法防止用户重新登录

下面是我正在使用的登录代码(来自firebase文档的示例)


我不确定这是否是正式的方法,但我最终将从
firebase.auth().currentUser
返回的用户保存在localStorage中,然后检查在加载文档时是否可以在localStorage中找到用户。如果找到一个用户,我只需将firebase.auth().currentUser设置为与localStorage中的用户相等,一切似乎都正常工作。(例如,如果没有经过身份验证的用户,客户端将无法调用数据库,但以这种方式设置currentUser允许访问数据库。)

如果看不到,则无法说明应用程序的行为方式。请指定您使用的环境。还要确保您正在使用身份验证状态观测器检查当前身份验证状态。在加载时同步检查firebase.auth().currentUser不会返回当前登录用户(状态确定是一个异步操作)。一些开发者犯了这个错误。啊,这是有道理的。当我回到这个项目时,我将切换到使用auth状态观测器。至于环境,这是一个web项目,只在浏览器(客户端)中使用javascript。我使用了与上述类似的方法,但是,我收到消息“Error:“currentUser”是只读的“嗯,我没有遇到过这个问题。再说一次,我从3号起就没有再次测试过这个应用程序,所以Firebase可能有变化?
function firebaseLogin() {
  firebase.auth().signInWithPopup(provider).then(function(result) {
    var token = result.credential.accessToken;
    var user = result.user;
    document.getElementById('user-name').innerHTML = user.displayName;
    document.getElementById('propic').src = user.photoURL;
    addClass(login, 'hidden');
    removeClass(logout, 'hidden');
    var snackbarData = {
      message: 'Login Successful',
      timeout: 2000
    };
    snackbarContainer.MaterialSnackbar.showSnackbar(snackbarData);
    console.log(user);
    reloadList();
  }).catch(function(error) {
    var errorCode = error.code;
    var errorMessage = error.message;
    var email = error.email;
    var credential = error.credential;
    var snackbarData = {
      message: 'Login Unsuccessful',
      timeout: 2000
    };
    snackbarContainer.MaterialSnackbar.showSnackbar(snackbarData);
    console.error(error);
  });
}