javascript - 如何在 firebase 版本 9 中使用 getIdToken() auth 方法?

标签 javascript firebase react-native firebase-authentication

如何在 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/

相关文章:

firebase - Flutter/Dart 和 Firebase 错误消息和代码

python - Firebase Firestore : get generated ID of document (Python)

macos - 我可以在 docker 镜像中开发 react-native 应用吗

react-native - 热衷于从另一个组件获取选定的值?

javascript - 全局数组不会在 javascript 函数中被修改

c# - 具有特定时区的 Javascript 整数到日期时间

javascript - 如何平滑我的 JavaScript 动画?

android - Firebase C++ 消息在启动时崩溃

android - 无法启动模拟器。原因 : Emulator exited before boot en React Native when react-native run-android

javascript - 通过id属性的一部分查找所有元素