Firebase Reauthenticate出现错误,要求凭据必须有效。

6 浏览
0 Comments

Firebase Reauthenticate出现错误,要求凭据必须有效。

这是一段Firebase代码:-\n

async reAuthenticateUser({ email, password }) {
    const user = await this.afAuth.currentUser;
    const credential = (await this.afAuth.signInWithEmailAndPassword(email, password)).credential;
    user.reauthenticateWithCredential(credential); 
}

\n我在使用Ionic 5+/Angular和AngularFireAuth。基本上,要删除一个用户,我们需要使用上述reuaunthenticateWithCredential方法对用户进行重新认证。但我对需要提供的credential对象感到困惑。我尝试重新登录并获取新的凭据,并将其提供给重新认证的方法,但失败并给出错误信息:\"reauthenticateWithCredential失败:第一个参数“credential”必须是有效的凭据。\"
\n请指导,谢谢。

0
0 Comments

Firebase Reauthenticate is giving error that credential must be valid的问题出现的原因是在使用Firebase Reauthenticate时,传入的凭证(credential)不是有效的。解决方法是确保传入的凭证是有效的。

在代码中,首先引入了AngularFireAuth模块,并使用构造函数将其注入到ngAuth变量中。然后通过ngAuth.currentUser获取当前用户。接下来使用EmailAuthProvider.credential方法创建一个凭证,该凭证使用当前用户的电子邮件和密码作为参数。最后从'firebase/auth'模块中引入EmailAuthProvider。

为了解决这个问题,需要确保传入Reauthenticate方法的凭证是有效的。可以通过以下步骤来解决:

1. 确保使用正确的电子邮件和密码创建凭证。

2. 检查传入的凭证是否与当前用户的凭证匹配。

3. 确保在调用Reauthenticate方法之前,已经成功登录并获取到当前用户。

以下是修改后的代码示例:

import { AngularFireAuth } from '@angular/fire/auth';
import { EmailAuthProvider } from 'firebase/auth';
constructor(private ngAuth: AngularFireAuth)
const currentUser = this.ngAuth.currentUser;
const email = 'example@example.com';
const password = 'password';
const credential = EmailAuthProvider.credential(email, password);
currentUser.reauthenticateWithCredential(credential)
  .then(() => {
    console.log('Reauthentication successful');
  })
  .catch((error) => {
    console.log('Error during reauthentication: ', error);
  });

通过以上步骤,可以解决Firebase Reauthenticate is giving error that credential must be valid的问题。

0