我查找了问题答案,但未找到正确的解决方案。
以下是问题: 我已经注册了电子邮件/密码,然后我退出了。 然后我尝试通过具有相同电子邮件地址的Facebook登录,然后它返回此错误消息。
"帐户已存在且电子邮件地址相同但不同 登录凭据。使用与此关联的提供商登录 电子邮件地址。"
我想要的是将facebook帐户与现有帐户合并(链接)。 在Firebase文档中,它要求先前登录的帐户与新帐户链接。
user.link(with: credential) { (user, error) in
// ...
}
但是在登录页面中,没有当前用户登录。
请建议我解决此问题的最佳方法。
答案 0 :(得分:1)
您所做的是在您(登录/链接)
时检查您当前的用户如果您已登录,则链接用户
static_assert(sizeof(float) == 4);
如果您不仅定期登录
if let user = Auth.auth().currentUser
user.link(with: credential) { (user, error) in
所有这些以及更多内容都可以在示例应用中看到
https://github.com/firebase/quickstart-ios/tree/master/authentication
答案 1 :(得分:0)
如此处所述Authentication using Facebook at first and then Google causes an error in Firebase for Android 如果用户以前使用谷歌登录,则Facebook登录存在问题。
例如,
案例1:
案例2:
如果用户尝试使用Facebook登录,但已存在给定电子邮件的用户(使用Google提供商)并且发生此错误:
“已存在具有相同电子邮件地址但不同的帐户 登录凭据。使用与此关联的提供商登录 电子邮件地址。“
因此,只需要求用户使用Google进行登录(并在将其静默链接到现有帐户之后)