FireBase + React:TypeError:user.getToken 不是函数

Posted

技术标签:

【中文标题】FireBase + React:TypeError:user.getToken 不是函数【英文标题】:FireBase + React: TypeError: user.getToken is not a function 【发布时间】:2020-10-12 23:18:58 【问题描述】:

这里的代码 signInWithEmailAndPassword 可以完美运行,但是当我尝试获取令牌时,总是会抛出错误 TypeError: user.getToken is not a function

import app from "./base.js";

app.auth()
   .signInWithEmailAndPassword(email, password)
   .then(function (user) 
      user.getToken().then(function (token) 
        localForage.setItem("token", token); // store the token
        console.log("pusing forward");
        history.push("/");
      );
    ).catch((error) => 
        console.log("err: " + error);
     );

base.js

import firebase from "firebase/app";
import "firebase/auth";

const app = firebase.initializeApp(
   apiKey: process.env.REACT_APP_FIREBASE_KEY,
   authDomain: process.env.REACT_APP_FIREBASE_DOMAIN,
   databaseURL: process.env.REACT_APP_FIREBASE_DATABASE,
   projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,
   storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,
   messagingSenderId: process.env.REACT_APP_FIREBASE_SENDER_ID,
);

export default app;

欢迎评论谢谢。

【问题讨论】:

【参考方案1】:

根据signInWithEmailAndPassword() 的API 文档,user 是一个UserCredential 对象。它没有getToken 方法。也许您想使用它的user 属性来获取User 对象,该对象具有getIdToken() 方法。

    user.user.getIdToken().then(token =>  ... )

这是调用signInWithEmailAndPassword(email, password) 后返回的对象user1 的峰值

【讨论】:

以上是关于FireBase + React:TypeError:user.getToken 不是函数的主要内容,如果未能解决你的问题,请参考以下文章

哪个 Firebase javascript 包应该与 React Native 一起使用?常规的“Firebase Web SDK”还是“react-native-firebase”?

React:使用 firebase-ui 设置 firebase 身份验证

找不到模块“firebase”或其相应的类型声明。 React + TypeScript + Firebase

React + Firebase 使用钩子?

React Redux Firebase 无法获取 firebase.storage

使用 React 和 react-redux-firebase 在登录期间确定范围