Firebase帐户链接错误

时间:2017-04-10 12:09:06

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

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

  

auth/email-already-exists

问题是,如果你有3个以上的auth方法,那个错误信息不是非常具体,开发一个处理这种情况的逻辑可能有点棘手。你是如何解决这个问题的?

1 个答案:

答案 0 :(得分:7)

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

  • AUTH /帐户存在与 - 不同-凭证
  • AUTH /凭据已经在使用
  • AUTH /电子邮件已经在使用

在上述所有情况中,错误可能包含其他字段:

  • 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-in-use),您可以直接使用该凭证登录

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