小编Osa*_*ita的帖子

有时firebase.auth().onAuthStateChanged在刷新页面时返回null用户

前提

$ npm install --save firebase@4.11.0

问题

我在我的Web应用程序上使用firebase身份验证.在我的应用程序中,我实现onAuthStateChanged了如下的客户端js.

firebase.auth().onAuthStateChanged((user) => {
  if(user) {
    //logged in
  } else {
    //do sth
  }
});
Run Code Online (Sandbox Code Playgroud)

登录后,我确认此方法将返回实际用户obj,但如果我刷新页面,则用户可能为null.奇怪的是,有时用户不会为空.我担心调用onAuthStateChanged有一些限制,但目前我不知道.

我该如何处理这个问题?

更新

让我分享一下我的最小例子.

我的应用正在使用express.js.有两个网址,如下所示. /login /main

在登录页面中,我实现了身份验证方法.如果登录成功完成,则用户将被重定向到"/ main".

//login.js
import firebase from 'firebase';
var config = {...};
firebase.initializeApp(config);

var provider = new firebase.auth.GoogleAuthProvider();
firebase.auth().signInWithPopup(provider)
.then((result) => {
  return result.user.getIdToken(true);
}).then((idToken) => {
  if(idToken) {
    location.href = '/main';
  }
});
Run Code Online (Sandbox Code Playgroud)

在主页面中,没有登录方法.main.js仅检查用户是否已登录.

//main.js
import firebase from 'firebase';
var config = {...};
firebase.initializeApp(config);

firebase.auth().onAuthStateChanged((user) => {
  if (user) …
Run Code Online (Sandbox Code Playgroud)

javascript firebase firebase-authentication

8
推荐指数
1
解决办法
3102
查看次数