开发者问题收集

无法读取未定义的属性(读取“凭据”)Firebase Auth ReactJS

2022-02-17
3477

在用户尝试更改密码之前,我尝试再次确认用户密码。

目前,我的 Firebase Auth 项目已在 Firebase.js 中配置并正确导出

//appConfig = ...(all the configurations here)
const app = firebase.initializeApp(appConfig);

const projectAuth = app.auth()

export { projectAuth }

在我的 PasswordManager.js 中,我使用该导出的 projectAuth:

import { projectAuth } from "../firebase";

        const authenticateCurrentPassword = async (currentPassword) => {

        try {
            const cred = projectAuth.EmailAuthProvider.credential(
                projectAuth.currentUser.email, currentPassword);
            projectAuth.reauthenticateWithCredentials(cred)
            await projectAuth.reauthenticateAndRetrieveDataWithCredential(cred);
            dispatchIfNotCancelled( {type: 'AUTHENTICATED'})
            return true
        }
        catch (err) {
            console.log(err)
            dispatchIfNotCancelled( {type: 'ERROR'})
        }
    }

在我尝试初始化“cred”的那一行上,它给了我一个错误,说凭据不存在:

"TypeError: Cannot read properties of undefined (reading 'credential')"

我知道凭据是 EmailAuthProvider 中的一个函数。 顺便说一句:我正在使用 “firebase”:“^7.24.0” ,如果这有帮助的话。

1个回答

这是对我有用的方法,请注意,您正在使用 angular 13 和 angular/fire 7.2

我直接从 'firebase/auth' 导入了 EmailAuthProvider

所以我的代码看起来像 const credentials = EmailAuthProvider.credential(user.email, password.old);

我希望这会有所帮助

Muzingaye Moyo
2022-04-03