如何在 iOS 的 Firebase SDK 中注销 Facebook 身份验证
How to Sign-out of Facebook Authentication in Firebase SDK for iOS
我在我的 iOS 项目中使用 firebase SDK。我在应用启动后创建了一个匿名帐户。
对于 facebook 登录,我使用以下代码 -
let credential = FacebookAuthProvider.credential(withAccessToken: FBSDKAccessToken.current().tokenString)
Auth.auth().currentUser?.linkAndRetrieveData(with: credential)
我应该如何实现注销?我需要用户返回到 firebase 匿名帐户。
我应该直接调用 firebase signout 并创建一个新的匿名帐户吗?
try! Auth.auth().signOut()
Auth.auth().signInAnonymously()
或者我应该调用 FBSDKLoginManager 的注销方法,这会保留 facebook 登录之前存在的 firebase 匿名用户吗?
FBSDKLoginManager().logOut()
还是我应该取消与提供商的链接?
Auth.auth().currentUser?.unlink(fromProvider: providerID!)
这里的理想方式应该是什么?
要让用户通过 Facebook 登录 Firebase 身份验证,他们需要使用 Facebook 和 Firebase 身份验证登录。如果您想随后将该用户登录到另一个提供商的 Firebase 身份验证,您只需要让他们退出 Firebase 身份验证。
链接和取消linking 提供商服务于另一个用例。假设除了他们现在登录的 Facebook 帐户之外,您还希望允许用户使用他们的 Google 帐户登录。
在这种情况下,您可以让用户保持登录状态,为他们的 Google 帐户和 link the two providers together 创建单独的身份验证凭据。从那一刻起,无论用户是使用他们的 Facebook 还是使用他们的 Google 凭据登录,他们都将登录到同一个 Firebase 身份验证帐户。
之后调用 unlink
允许您从帐户中取消link其中一个提供商。
更新我想我现在明白了...
- 您有一个匿名登录的用户。
- 然后您使用 Facebook 帐户登录了他们。
- 然后您将他们注销了他们的 Facebook 帐户。
- 现在您想返回到以前的匿名身份验证帐户。
这是不可能的。当您让用户登录 Facebook 时,他们会退出之前的帐户。当用户退出匿名身份验证时,该帐户将无法恢复。
如果此是您应用的正常用例,您必须link Facebook 帐户到上面步骤 2 中的现有匿名身份验证帐户(而不是替换它)。如果这样做,您确实可以取消link Facebook 帐户并返回(仅)匿名身份验证提供程序。
我在我的 iOS 项目中使用 firebase SDK。我在应用启动后创建了一个匿名帐户。
对于 facebook 登录,我使用以下代码 -
let credential = FacebookAuthProvider.credential(withAccessToken: FBSDKAccessToken.current().tokenString)
Auth.auth().currentUser?.linkAndRetrieveData(with: credential)
我应该如何实现注销?我需要用户返回到 firebase 匿名帐户。
我应该直接调用 firebase signout 并创建一个新的匿名帐户吗?
try! Auth.auth().signOut()
Auth.auth().signInAnonymously()
或者我应该调用 FBSDKLoginManager 的注销方法,这会保留 facebook 登录之前存在的 firebase 匿名用户吗?
FBSDKLoginManager().logOut()
还是我应该取消与提供商的链接?
Auth.auth().currentUser?.unlink(fromProvider: providerID!)
这里的理想方式应该是什么?
要让用户通过 Facebook 登录 Firebase 身份验证,他们需要使用 Facebook 和 Firebase 身份验证登录。如果您想随后将该用户登录到另一个提供商的 Firebase 身份验证,您只需要让他们退出 Firebase 身份验证。
链接和取消linking 提供商服务于另一个用例。假设除了他们现在登录的 Facebook 帐户之外,您还希望允许用户使用他们的 Google 帐户登录。
在这种情况下,您可以让用户保持登录状态,为他们的 Google 帐户和 link the two providers together 创建单独的身份验证凭据。从那一刻起,无论用户是使用他们的 Facebook 还是使用他们的 Google 凭据登录,他们都将登录到同一个 Firebase 身份验证帐户。
之后调用 unlink
允许您从帐户中取消link其中一个提供商。
更新我想我现在明白了...
- 您有一个匿名登录的用户。
- 然后您使用 Facebook 帐户登录了他们。
- 然后您将他们注销了他们的 Facebook 帐户。
- 现在您想返回到以前的匿名身份验证帐户。
这是不可能的。当您让用户登录 Facebook 时,他们会退出之前的帐户。当用户退出匿名身份验证时,该帐户将无法恢复。
如果此是您应用的正常用例,您必须link Facebook 帐户到上面步骤 2 中的现有匿名身份验证帐户(而不是替换它)。如果这样做,您确实可以取消link Facebook 帐户并返回(仅)匿名身份验证提供程序。