【问题标题】:Firebase account linking errorFirebase 帐号关联错误
【发布时间】:2017-09-05 11:22:56
【问题描述】:

因此,当您尝试使用其他身份验证方法登录应用程序时,例如,起初用户使用 Google,现在他使用 FB,并且这两个帐户拥有相同的邮件,您会收到该错误

auth/email-already-exists

问题是,如果您有 3 个以上的身份验证方法,则该错误消息不是很具体,开发处理这种情况的逻辑可能有点棘手。你如何解决这个问题?

【问题讨论】:

    标签: javascript node.js authentication firebase firebase-authentication


    【解决方案1】:

    email-already-exists 在 firebase-admin sdk 中抛出。我不认为它是在客户端 SDK 中抛出的。 对于客户端 SDK,在将现有帐户链接到另一个帐户时,或者使用另一个帐户中存在电子邮件的新帐户登录时,会引发以下错误:

    • auth/account-exists-with-different-credential
    • auth/credential-already-in-use
    • auth/email-already-in-use

    在上述所有内容中,错误可能包含附加字段:

    • error.email:您尝试登录时使用的关联凭据的电子邮件
    • error.credential:凭据本身(通常为 OAuth 凭据返回)

    您可以查找现有帐户以了解存在哪些提供程序:

    firebase.auth().fetchProvidersForEmail(error.email)
      .then(function(providers) {
        // Providers would be an array of the form:
        // ['password', 'google.com']
      });
    

    对于 auth/account-exists-with-different-credential,您可以使用该提供商登录,如果需要,将 error.credential 链接到登录用户。

    firebase.auth().currentUser.link(error.credential);
    

    如果链接时发生错误(auth/credential-already-in-use),您可以直接使用该凭据登录

    firebase.auth().signInWithCredential(error.credential):
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-31
      • 2021-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-10
      相关资源
      最近更新 更多