You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular4集成Firebase时如何解决getToken已弃用问题?

解决Firebase getToken() 弃用问题

嘿,这个问题我刚好碰到过!Firebase 确实把 firebase.User.prototype.getToken() 标记为弃用了,官方推荐用 getIdToken() 来替代,我帮你把代码改好,顺便优化下结构让它更可靠:

优化后的链式调用版本

signinUser(email: string, password: string) {
  firebase.auth().signInWithEmailAndPassword(email, password)
    .then(response => {
      // 直接用登录返回的user对象,比currentUser更稳妥
      return response.user.getIdToken();
    })
    .then((token: string) => {
      this.token = token;
    })
    .catch(error => console.log(error));
}

更简洁的 async/await 版本(推荐)

如果你习惯用异步函数的写法,这个版本可读性更强:

async signinUser(email: string, password: string) {
  try {
    const response = await firebase.auth().signInWithEmailAndPassword(email, password);
    const token = await response.user.getIdToken();
    this.token = token;
  } catch (error) {
    console.log(error);
  }
}

几个关键点说明:

  • 直接替换 getToken() 为 getIdToken() 就能解决弃用警告,两者功能完全一致,只是API命名更规范了
  • 我把原来的 firebase.auth().currentUser 换成了 response.user,这是因为登录成功后返回的user对象是即时可用的,避免了currentUser可能存在的异步更新延迟导致的null问题
  • async/await 写法能避免嵌套的"回调地狱",代码逻辑更清晰

内容的提问来源于stack exchange,提问作者Ace Valdez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:22:31