添加 Email/Password 个提供者,即使有另一个提供者使用该电子邮件
add Email/Password provider even there's another provider using the email
我的应用程序有如下登录方法:
- 第 3 方提供商(Facebook、Google、Apple)
- Email/Password
应用中有一项功能,用户可以切换到传统登录,但他们需要提供帐户密码才能继续。
每当我从 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()
登录。
我的应用程序有如下登录方法:
- 第 3 方提供商(Facebook、Google、Apple)
- Email/Password
应用中有一项功能,用户可以切换到传统登录,但他们需要提供帐户密码才能继续。
每当我从 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()
登录。