我在 Firebase 中有一个当前数据库,其中包含可以使用 user/pwd 登录的活动用户,但现在我正在实现 facebook 登录,并且我意识到将 facebook 帐户与现有用户链接的唯一方法只有当用户已经登录时用户/密码,但不是在登录之前。
我的应用程序中有两个按钮(使用 Facebook 和电子邮件登录),但如果我尝试使用现有用户的同一电子邮件登录 Facebook,我将收到以下错误身份验证/帐户存在不同凭证文档说,为了解决这个问题,用户需要先登录然后链接。
您是否知道是否有一种方法可以链接两个帐户,但无需先从登录视图执行登录?
在链接之前您需要先登录用户。如果您想确保它是同一用户,这一点很重要。否则,您可以在 Firebase 控制台中为每个电子邮件切换到多个帐户。
出现错误时解决此问题的方法auth/account-exists-with-different-credential
,错误将包含error.email
and error.credential
当您使用 Facebook 登录并且该帐户已作为密码帐户存在后。
然后你打电话firebase.auth().fetchProvidersForEmail(error.email)
通过该电子邮件的提供商 ID 列表进行解析。在这种情况下,它将包含['password']
。然后您要求用户提供密码。你打电话signInWithEmailAndPassword(error.email, password)
登录原始用户。然后你打电话firebase.auth().currentUser.linkWithCredential(error.credential)
将 Facebook 凭据链接到密码帐户。现在两个帐户已合并,用户可以使用其中一个帐户登录。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)