Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase:将facebook帐户与现有用户链接_Firebase_Firebase Authentication_Facebook Login - Fatal编程技术网

Firebase:将facebook帐户与现有用户链接

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中有一个当前数据库,其中有活动用户,可以使用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你们能帮我吗?