[英]What's the difference with linkWithCredential and linkWithPopup
我阅读了将匿名帐户转换为永久帐户,并看到使用:
auth.currentUser.linkWithCredential(credential)
将合并匿名凭证和例如 Google、Facebook 等credential
然后我阅读了使用 JavaScript 将多个 Auth Providers 链接到一个帐户将使用以下方法执行相同的操作:
auth.currentUser.linkWithPopup(provider)
如果我的 SPA Reactjs 应用程序需要匿名登录,之后有什么区别,我应该使用哪个,如果用户想登录,他可以使用 Google Facebook 来登录。
我运行了一些测试,发现如果帐户存在,使用linkWithPopup
返回错误auth/credential-already-in-use
那么我必须使用signInWithCredential
。 到目前为止,这工作正常。
阅读有关linkWithCredential
的信息,如果 Google 帐户已在 Firebase 使用,我不知道该怎么办。我认为linkWithCredential
会创建两个帐户,所以我可能必须做我对linkWithPopup
所做的事情,比如signInWithCredential
这两个最终做同样的事情; 什么时候使用什么,或者我错过了什么?
linkWithCredential()将该帐户与您从先前登录中获得的凭据相关联。
linkWithPopup()将帐户与给定的提供商链接,引导用户完成该提供商的身份验证流程。 凭据将自动从该登录中获取。
因此,如果您已经拥有用户已登录的帐户的凭据,请使用linkWithCredential
。 如果您没有用户凭据,并且需要通过登录流程使用 go 来获取它们,请使用linkWithPopup()
。
无论哪种情况,最终结果都是相同的 - 当前登录的 Firebase Auth 帐户将链接到用户已证明其身份的另一个帐户(Google、Facebook 等)。
当社交身份验证需要弹出窗口时, linkWithPopup()
对于链接 Flutter Web 上的帐户是必需的。 例如,如果您需要将 Apple 帐户链接到现有帐户, signInWithPopup()
将进行身份验证,创建一个新的 firebase 帐户并返回新用户......您不希望现有帐户出现。
使用linkWithPopup()
,您可以验证 apple 用户和链接,跳过创建新帐户和返回用户的步骤。
如果将signInWithPopup()
与linkWithCredential()
结合使用,则在大多数情况下(用户返回并重建应用程序)您将永远无法访问linkWithCredential()
,或者您只会在链接尝试时出错,因为已创建新帐户.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.