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

man*_*nny 5 javascript firebase react-native firebase-authentication

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

在版本 8 中它的工作原理如下

import firebase from "firebase";

const token = await firebase.auth().currentUser.getIdToken(/* forceRefresh */ false);
Run Code Online (Sandbox Code Playgroud)

我在版本 9 中尝试过,但它不起作用

import { getIdToken } from "firebase/auth";

const token = await getIdToken(/* forceRefresh */ false);
Run Code Online (Sandbox Code Playgroud)

我也在下面尝试过,但它不起作用

import { getAuth } from "firebase/auth";

const auth = getAuth();
const { currentUser } = auth;

const token = await currentUser.getIdToken(/* forceRefresh */ false);
Run Code Online (Sandbox Code Playgroud)

Dha*_*raj 2

getIdToken()函数采用User参数,而不是refreshToken名称空间 SDK 中的布尔值。

import { getIdToken, onAuthStateChanged } from "firebase/auth";

onAuthStateChanged(auth, async (user) => {
  if (user) {
    const token = await getIdToken(user);
  }
});
Run Code Online (Sandbox Code Playgroud)

就错误而言,getAuth()返回身份验证实例,但用户的身份验证状态现在可能已加载。onAuthStateChanged尝试按照@Frank的建议运行相同的内容或添加空检查。