Firebase:将facebook帐户与现有用户链接
我在Firebase中有一个当前数据库,其中有活动用户,可以使用user/pwd登录,但现在我正在实施facebook登录,并且我意识到只有当用户已经使用user/pwd登录时,才可以将facebook帐户与现有用户链接,而不是在登录之前 我的应用程序中有两个按钮(使用fb登录和使用电子邮件登录),但如果我尝试使用现有用户的相同电子邮件登录fb,我将收到以下错误auth/account exists with nother credential,文档中说为了解决此问题,用户需要先登录,然后链接Firebase:将facebook帐户与现有用户链接,firebase,firebase-authentication,facebook-login,Firebase,Firebase Authentication,Facebook Login,我在Firebase中有一个当前数据库,其中有活动用户,可以使用user/pwd登录,但现在我正在实施facebook登录,并且我意识到只有当用户已经使用user/pwd登录时,才可以将facebook帐户与现有用户链接,而不是在登录之前 我的应用程序中有两个按钮(使用fb登录和使用电子邮件登录),但如果我尝试使用现有用户的相同电子邮件登录fb,我将收到以下错误auth/account exists with nother credential,文档中说为了解决此问题,用户需要先登录,然后链接
您知道是否有一种方法可以链接两个帐户,但不首先执行登录,我的意思是,从登录视图?在链接之前,您需要先登录用户。如果要确保它是同一个用户,这一点很重要。否则,您可以在Firebase控制台中切换到每封电子邮件的多个帐户。 解决此问题的方法是,当您收到错误
auth/account以不同凭据存在时
,在您登录Facebook且该帐户已作为密码帐户存在后,该错误将包含error.email
和error.credential
。
然后调用
firebase.auth().fetchProvidersForEmail(error.email)
,它将与该电子邮件的提供商ID列表进行解析。在这种情况下,它将包含['password']
。然后要求用户提供其密码。您可以使用email和password(error.email,password)调用登录以登录原始用户。然后调用firebase.auth().currentUser.linkWithCredential(error.credential)
将Facebook凭据链接到密码帐户。现在两个帐户都合并了,用户可以用其中一个登录。听起来不错,输入密码是一个额外的步骤,但最后更好。谢谢今天似乎不是这样。firebase不再返回具有不同凭据错误的帐户。它使用与google相同的用户ID和不同的firebase令牌返回成功响应。如果firebase的行为没有错误,如何知道该帐户的存在。我有什么方法可以在Android上复制它吗?@SoldierCorp你们能帮我吗?