Firebase 更改 Facebook 帐户

Posted

技术标签:

【中文标题】Firebase 更改 Facebook 帐户【英文标题】:Firebase change Facebook account 【发布时间】:2017-06-10 14:11:40 【问题描述】:

我目前正在开发一个 Angular2 应用程序,它使用 Firebase 作为用户系统,并提供以下提供商:电子邮件 + 密码、Facebook、谷歌

问题是当我使用 Facebook 登录时,我无法再更改 Facebook 帐户。当我注销并再次点击“使用 Facebook 登录”时,会自动使用之前的用户。

通过 GoogleAuthProvider 我可以按如下方式管理帐户更改

const googleAuthProvider = new firebase.auth.GoogleAuthProvider();
googleAuthProvider.setCustomParameters(prompt: 'select_account');

但我不能通过 Facebook 做同样的事情,因为 Api 不同,我在文档中找不到类似的选项。

有人遇到过同样的问题吗?

【问题讨论】:

【参考方案1】:

退出 Firebase 不会自动让用户退出 Facebook。因此,如果您希望它们退出,则必须为此添加显式调用。

LoginManager.getInstance().logOut()

请参阅 https://***.com/a/29559001/209103 和 https://developers.facebook.com/docs/reference/android/current/class/LoginManager/。

【讨论】:

我在网站上使用 Angular => 我不使用 Android SDK。【参考方案2】:

与 Google 不同,Facebook 不支持同时登录多个帐户的功能。最接近prompt 的是auth_type: 'reauthenticate',它会强制用户再次输入他/她的密码。这至少可以让用户知道他们登录时使用的 Facebook 帐户。

【讨论】:

试过 provider.setCustomParameters( auth_type : 'reauthenticate', prompt : auth_type : 'reauthenticate' );返回 auth.signInWithPopup(provider).then( .... ) 作为 Promise;但是没有成功 provider.setCustomParameters( auth_type : 'reauthenticate').

以上是关于Firebase 更改 Facebook 帐户的主要内容,如果未能解决你的问题,请参考以下文章

如果在 Firebase Android 初始注册期间帐户已与 google 关联,则使用 Facebook 登录

我可以使用 Firebase Auth 或 FaceBook 帐户工具包而不是 SMSprovider 吗?

Firebase 未从 Facebook 捕获电子邮件/电话

Firebase linkwithcredential 不适用于 Facebook

在 Firebase 中关联多个帐户

无法在 Facebook 登录屏幕上更改帐户