繁体   English   中英

linkWithCredential 和 linkWithPopup 有什么区别

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM