【发布时间】:2021-12-26 22:07:06
【问题描述】:
如何在firebase 9 中使用getIdToken() auth 方法?
它在版本 8 中如下所示
import firebase from "firebase";
const token = await firebase.auth().currentUser.getIdToken(/* forceRefresh */ false);
我在第 9 版中尝试过,但无法正常工作
import { getIdToken } from "firebase/auth";
const token = await getIdToken(/* forceRefresh */ false);
我也在下面尝试过,但它不起作用
import { getAuth } from "firebase/auth";
const auth = getAuth();
const { currentUser } = auth;
const token = await currentUser.getIdToken(/* forceRefresh */ false);
【问题讨论】:
-
getIdToken仍然是 v9 中User对象上的一个方法,如此处所示 firebase.google.com/docs/reference/js/…。您问题中的最后一个代码 sn-p 有什么问题?你在调试器中单步执行了吗?currentUser有值吗?currentUser.uid有值吗? -
是的
currentUser确实有一个价值,如何建议我在 v9 中使用getIdToken方法? @FrankvanPuffelen -
和以前一样,那么当你在最后一个 sn-p 中运行最后一行时会发生什么?
-
得到这个错误
[Unhandled promise rejection: TypeError: null is not an object (evaluating 'currentUser.getIdToken')]@FrankvanPuffelen -
听起来
currentUser是null。如果你在调用 ID 令牌之前执行if (currentUser === null) throw "No current user",那应该很容易测试。
标签: javascript firebase react-native firebase-authentication