Firebase帐户链接错误
问题描述:
因此,当您尝试使用其他身份验证方法登录应用程序时,例如,首先用户使用Google,现在他使用FB并且这两个帐户具有相同的邮件,则会得到该错误Firebase帐户链接错误
auth/email-already-exists
的事情是,如果你有3+身份验证方法,该错误消息的心不是很具体,它可能是一个有点棘手开发处理这种情况的逻辑。你如何解决这个问题?
答
error.credential登录相关凭证电子邮件帐户查明供应商为它存在什么:
电子邮件已存在是在firebase-admin sdk中引发的。我不认为它在客户端SDK中抛出。
- 认证/帐户存在 - 与 - : 对于客户端SDK,以下错误将现有的帐户链接到另外一个时,或在电子邮件中另一个存在一个新的帐户登录抛出不同-凭证
- AUTH /凭据已经在使用中
- AUTH /电子邮件已经在使用中
在所有上述的,误差可能包含额外的字段:
- error.email:凭证自身(通常这是返回OAuth认证)
您可以查找现有的:你想用
firebase.auth().fetchProvidersForEmail(error.email)
.then(function(providers) {
// Providers would be an array of the form:
// ['password', 'google.com']
});
在认证/帐户存在与 - 不同的制证,然后可以与供应商登录,并根据需要链接error.credential在签署用户。
firebase.auth().currentUser.link(error.credential);
如果连接时发生错误(AUTH /凭据已在使用中),您可以直接与证书
firebase.auth().signInWithCredential(error.credential):
登录