如何在 firebase 版本 9 中使用 getIdToken()
身份验证方法?
在版本 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()
函数将 User
作为参数,而不是 namespace SDK 中的 refreshToken
bool 值。
import { getIdToken, onAuthStateChanged } from "firebase/auth";
onAuthStateChanged(auth, async (user) => {
if (user) {
const token = await getIdToken(user);
}
});
就错误而言,getAuth()
返回 auth 实例,但用户的 auth 状态现在可能已经加载。尝试在 onAuthStateChanged
中运行相同的代码或按照@Frank 的建议添加空检查。
关于javascript - 如何在 firebase 版本 9 中使用 getIdToken() auth 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70490182/