javascript – Firebase getToken()TypeError:无法读取属性

前端之家收集整理的这篇文章主要介绍了javascript – Firebase getToken()TypeError:无法读取属性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试获取我当前登录的网站用户的令牌.但是,javascript无法为我获得价值.我认为这里有两个问题:

>当我在启动时收到Auth.currentUser时,我收到“TypeError:无法读取属性’getToken’为null”的错误.但是当我在控制台中键入Auth.currentUser.getToken()时,带有令牌的对象实际显示出来.
> getToken()返回给我的是一个promise对象,其键’ea’包含令牌的值.但是当我做Auth.currentUser.getToken()时,它会让我’空’.如何直接从对象中检索令牌?

谢谢!

我检索令牌的代码

var Auth = firebase.auth()
var token = Auth.currentUser.getToken()

此屏幕截图可能有用:

解决方法

根据 documentation of firebase.User:getIdToken()

Returns a JWT token used to identify the user to a Firebase service.

Returns the current token if it has not expired,otherwise this will refresh the token and return a new one.

方法返回一个承诺,因为如果令牌已过期,它可能需要往返Firebase服务器的往返:

Auth.currentUser.getIdToken().then(data => console.log(data))

或者更经典的JavaScript:

Auth.currentUser.getIdToken().then(function(data) {
    console.log(data)
});

日志输出

ey…biPA

更新:要确保用户获取令牌之前已登录,请在onAuthStateChanged listener中运行以上代码

firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
    user.getIdToken().then(function(data) {
      console.log(data)
    });
  }
});

猜你在找的JavaScript相关文章