iOS - Firebase - 如何通过电子邮件注册登录已经注册的Facebook

时间:2017-06-12 09:54:53

标签: ios facebook firebase firebase-authentication

我查找了问题答案,但未找到正确的解决方案。

以下是问题: 我已经注册了电子邮件/密码,然后我退出了。 然后我尝试通过具有相同电子邮件地址的Facebook登录,然后它返回此错误消息。

  

"帐户已存在且电子邮件地址相同但不同   登录凭据。使用与此关联的提供商登录   电子邮件地址。"

我想要的是将facebook帐户与现有帐户合并(链接)。 在Firebase文档中,它要求先前登录的帐户与新帐户链接。

user.link(with: credential) { (user, error) in
  // ...
}

但是在登录页面中,没有当前用户登录。

请建议我解决此问题的最佳方法。

2 个答案:

答案 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:

  • 用户使用Google登录
  • 用户从应用
  • 退出
  • 用户无法使用Facebook登录

案例2:

  • 用户使用Facebook登录
  • 用户从应用
  • 退出
  • 用户使用Google登录=>在这一点上,Firebase将Facebook删除为提供商
  • 用户从应用
  • 退出
  • 用户无法使用Facebook登录

如果用户尝试使用Facebook登录,但已存在给定电子邮件的用户(使用Google提供商)并且发生此错误:

  

“已存在具有相同电子邮件地址但不同的帐户   登录凭据。使用与此关联的提供商登录   电子邮件地址。“

因此,只需要求用户使用Google进行登录(并在将其静默链接到现有帐户之后)

Facebook and Google Sign In logics using firebase

相关问题