微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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)
    });
  }
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐