我想使用firebase作为我的应用程序身份验证方法 . 但我希望我的用户使用Google或Facebook登录 . 我有点困惑这里发生的事情 .
假设用户仅使用Facebook成功进行身份验证 . 然后我得到了Facebook的回调,并取得了一些成功 . 现在我将该令牌发送到firebase以进行进一步的身份验证 . Firebase可以返回成功或失败 . 这一部分我明白了 .
但令我困惑的是,如果同一用户使用Google帐户登录,那么这不会被视为不同的登录信息吗? firebase会知道Facebook用户是同一个谷歌用户还是会创建两个不同的帐户?我不希望用户拥有两个不同的帐户,因为他们选择了不同的登录提供商 . 我希望firebase能够知道它的同一个用户 . 这就是为什么我想将firebase身份验证用作其中心位置的原因 . 有人可以告诉我吗?
更新:
谢谢 . 因此,如果我理解正确,至少有一个帐户必须已经登录到firebase以便链接另一个帐户?所以情况就是这样......想象一下我目前使用谷歌帐户登录 . 我如何要求用户链接Facebook帐户?我希望我可以无缝链接第二个帐户,但似乎你不能 . 因此,doni如何提示用户或在什么条件下可以毫不费力地链接第二个帐户?如果没有我直接询问用户,我无法想象这将如何工作 .
2 回答
只要用户为两个提供商使用相同的电子邮件地址,您就可以告诉Firebase将这两个帐户链接在一起 . 见section on linking providers in the Firebase documentation .
Firebase支持多个Auth Providers到一个帐户 . 您所要做的就是使用linkWithCredential(credential)方法 . 这是来自firebase网站的代码片段 .
请注意,如果凭据已链接到其他用户帐户,则对linkWithCredential的调用将失败 . 在这种情况下,您必须根据应用程序处理合并帐户和相关数据 .