当前位置: 首页 > 知识库问答 >
问题:

如何在 Firebase SDK for iOS 中注销 Facebook 身份验证

诸福
2023-03-14

我正在我的iOS项目中使用firebase SDK。我在应用程序启动后立即创建了一个匿名帐户。

对于facebook登录,我使用以下代码-

let credential = FacebookAuthProvider.credential(withAccessToken: FBSDKAccessToken.current().tokenString)

Auth.auth().currentUser?.linkAndRetrieveData(with: credential)

我应该如何实现登出?我需要用户返回Firebase匿名帐户。

我应该直接致电firebase注销并创建一个新的匿名帐户吗?

try! Auth.auth().signOut()

Auth.auth().signInAnonymously()

或者应该调用FBSDKLoginManager的logout方法,这样会持久化firebase匿名用户吗,facebook登录之前就有了?

FBSDKLoginManager().logOut()

或者我应该取消与提供商的链接?

Auth.auth().currentUser?.unlink(fromProvider: providerID!)

这里最理想的方式应该是什么?

共有1个答案

侯令雪
2023-03-14

要通过Facebook将用户登录到Firebase身份验证,他们需要使用Facebook和Firebase身份验证登录。如果您想然后通过其他提供商将该用户登录到Firebase身份验证,您只需将他们从Firebase身份验证中登录出来。

链接和取消链接提供商提供了另一个用例。假设您希望允许用户使用他们的Google帐户登录,以及他们现在登录的Facebook帐户。

在这种情况下,您可以让用户登录,为他们的Google帐户创建单独的身份验证凭据,并将两个提供商链接在一起。从那时起,无论用户使用他们的Facebook还是使用他们的Google凭据登录,他们都将登录到同一个Firebase身份验证帐户。

之后调用解除关联允许您从帐户中解除关联的提供者之一。

更新我想我现在明白了...

  1. 您有一个匿名登录的用户。
  2. 然后你用Facebook帐户登录他们。
  3. 接下来你从他们的脸书账户上签了名。
  4. 现在您要返回到以前的匿名身份验证帐户。

这是不可能的。当您将用户登录Facebook时,他们将从以前的帐户中注销。当用户退出匿名身份验证时,该帐户将无法恢复。

如果这是你的应用的正常用例,则必须在上面的步骤 2 中将 Facebook 帐户链接到现有的匿名身份验证帐户(而不是替换它)。如果您这样做,您确实可以取消链接Facebook帐户并返回(仅)匿名身份验证提供商。

 类似资料:
  • 问题内容: 我已经尝试过搜索,但是找不到我的问题的答案。 我正在从github玩这个应用程序:https : //github.com/Yalantis/Koloda/tree/master/Example 我之所以使用它,是因为我正在做一个项目,该项目将使用此应用程序中基于图块的滑动。 我也在使用Firebase。到目前为止,我可以将用户添加到数据库中,因此应用程序和firebase已连接。 我

  • 在本章中,我们将使用Firebase Facebook身份验证对用户进行身份验证。 第1步 - 启用Facebook身份验证 我们需要打开Firebase信息中心,然后在侧边菜单中点击Auth 。 接下来,我们需要在标签栏中选择SIGN-IN-METHOD 。 我们将启用Facebook身份验证并保持打开状态,因为我们需要在完成第2步时添加App ID和App Secret 。 第2步 - 创建F

  • 我正在跟踪这个问题的答案。 但我得到了这个错误: noSuchMethodError:没有虚拟方法removeAccount(Landroid/Accounts/Account;Landroid/App/Activity;Landroid/Accounts/AccountManagerCallback;Landroid/OS/Handler;)Landroid/Accounts/AccountMa

  • 问题内容: 注销HTTP身份验证受保护的文件夹的 正确 方法是什么? 有一些解决方法可以实现这一目标,但是它们可能会带来危险,因为它们可能有故障或在某些情况下/浏览器中无法使用。这就是为什么我要寻找正确和清洁的解决方案。 问题答案: 亩。 没有正确的方法 ,甚至没有跨浏览器一致的方法。 这是来自HTTP规范(第15.6节)的问题: 现有的HTTP客户端和用户代理通常会无限期地保留身份验证信息。HT

  • 登录,注销-一切正常,但我不知道如何注册一个AuthentiationListener来记录我的用户。 我使用的是Guice,并且我使用自己的dbsaltwarerealm(公共类dbsaltarerealm扩展了授权领域) 感谢

  • 我正在使用jwt auth在我的API中创建RESTful身份验证资源。当客户端应用程序调用登录资源时,如果用户已登录,则必须使当前令牌无效,从而生成新令牌。 但如果当前令牌被列入黑名单,则会抛出。 如何验证令牌是否被列入黑名单?或者如何正确执行用户“注销”?我试图在jwt auth API源代码上找到,但不存在