Firebase多个身份验证提供程序问题

时间:2017-05-31 20:42:23

标签: ios facebook firebase twitter firebase-authentication

我一直在敲打我的脑袋和键盘谷歌搜索,阅读Firebase文档并将StackOverflow梳理好几天,以获得类似情况和帮助。

情况如下:

  1. 用户使用Twitter按钮登录iOS应用程序。
  2. 用户退出(无论出于何种原因)。
  3. 一段时间后,用户返回应用程序并点按Facebook按钮,Firebase会返回以下错误:
  4.   

    “验证错误:已存在具有相同电子邮件地址的帐户,但是   不同的登录凭据。使用相关的提供商登录   用这个电子邮件地址。“

    Firebase文档说要将用户链接到Facebook凭据,在这种情况下。 https://firebase.google.com/docs/auth/ios/account-linking

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

    但此时,Auth.auth().currentUser == nil因此没有要关联的帐户。此外,“每个电子邮件地址一个帐户”设置设置为TRUE。

    来自Auth:signInAndRetrieveData(with credential: AuthCredential, completion: FirebaseAuth.AuthDataResultCallback? = nil)

      

    FIRAuthErrorCodeAccountExistsWithDifferentCredential - 表示   由凭证断言的电子邮件(例如,Facebook访问中的电子邮件)   令牌)已被现有帐户使用,但不可以   使用此登录方法进行身份验证。调用fetchProvidersForEmail   对于此用户的电子邮件,然后提示他们使用任何一个登录   登录提供商已退回。只有在“One”时才会抛出此错误   每个电子邮件地址的帐户“在Firebase控制台中启用了设置,   在Auth设置下。

    回到这种情况(用户目前有Twitter凭证,用户点击了Facebook按钮, currentUser == nil 并存在上述错误),此时,是否适合调用Twitter编程功能(代表用户)然后将Facebook凭证链接到当前用户?

    是否有人遇到过这种情况并解决了这个问题,以获得更酷的用户体验,而不是点按提示点按Twitter按钮?

    感谢您的帮助

0 个答案:

没有答案