这是在 Firebase 身份验证删除之前重新验证用户身份的代码。
final user = FirebaseAuth.instance.currentUser!;
AuthCredential cred = EmailAuthProvider.credential(
email: email,
password: password,
);
UserCredential userCredential =
await user.reauthenticateWithCredential(cred);
// await userCredential.user?.delete(); commented out to test the reauthentication exceptions
当我使用正确的电子邮件地址和错误的密码进行测试时,我收到错误消息,但应用程序正常。
但是当我使用错误的电子邮件进行测试时,当我再次按下按钮时,应用程序会由于当前用户为空而崩溃。
当我重新启动应用程序时,我返回到登录页面。因此它会注销当前用户。这是为什么?
使用不同的电子邮件地址登录意味着您正在使用不同的帐户登录。显然,即使新登录失败,也会注销当前帐户。
如果您不想退出当前用户,请考虑为每个用户使用单独的
FirebaseApp
对象。那里没有代码示例,但您应该能够根据其他语言和 Flutter 的参考文档使其工作。