添加 Email/Password 个提供者,即使有另一个提供者使用该电子邮件

add Email/Password provider even there's another provider using the email

我的应用程序有如下登录方法:

应用中有一项功能,用户可以切换到传统登录,但他们需要提供帐户密码才能继续。 每当我从 FirebaseAuth 调用 createUserWithEmailAndPassword 为已经存在但使用不同提供商(如 Facebook 等)的用户创建 Email/Password 身份验证提供商时,此错误总是显示

[firebase_auth/email-already-in-use] The email address is already in use by another account.

我该如何解决这个错误?我应该更改身份验证流程中的某些内容吗?

当您致电 createUserWithEmailAndPassword 时您正在做的是尝试创建一个已经存在的帐户。在 FireBase 中,可能会有一个没有密码的用户,这就是您遇到的情况。

相反,我认为您需要使用 User.updatePassword() (https://pub.dev/documentation/firebase_auth/latest/firebase_auth/User/updatePassword.html)

然后您可以使用FirebaseAuth.instance.signInWithEmailAndPassword()登录。