ios - 使用 Firebase 匿名登录影响 Facebook 登录

标签 ios swift firebase firebase-authentication fbsdkloginkit

我在尝试结合 Firebase 匿名登录登录/授权 facebook 时遇到一些问题。

我目前有一个常规的 UIButton,它尝试使用以下代码让用户登录。

let loginManager = FBSDKLoginManager()
loginManager.logIn(withReadPermissions: ["public_profile", "email", "user_friends"], from: self, handler: { (result: FBSDKLoginManagerLoginResult!, error) -> Void in
        // get fbsdk token and login through firebase
    })

通常,单击该按钮会出现正常行为,其中显示 alertController 并询问用户是否要使用 facebook.com 登录。单击继续后,Safari(或 facebook ) 打开以授权该应用。

这一切都很好,但如果用户首先从 Firebase 匿名登录,则单击同一按钮通过 facebook 登录现在将失败。在弹出 alertController 询问用户之后,屏幕(Safari)看起来好像在演示过程中中途中止并停留在当前屏幕上,而不是显示 Safari 以获得 facebook 授权。如果您再次点击该按钮,应用程序最终将崩溃,并且不会出现任何错误消息

(it will just show a EXC_BAD_ACCESS message on the AppDelegate).

作为例子,我在下面放了代码来展示如何保证facebook登录失败。

Auth.auth().signInAnonymously { (user, error) in
    if let error = error {
         print(error.localizedDescription)
    }
    if let user = user {
         let loginManager = FBSDKLoginManager()
         loginManager.logIn(withReadPermissions: ["public_profile", "email", "user_friends"], from: self, handler: { (result: FBSDKLoginManagerLoginResult!, error) -> Void in
               // get fbsdk token and login through firebase
         })
    }
}

很明显,在我的实际代码中,我并没有尝试在匿名登录后立即登录,但它表明匿名签名显然会以某种方式影响 FBSDKLoginManager。我看过 SO 但还没有真正看到任何关于此的问题。想知道这是一个错误还是我只是遗漏了什么。

这是在 iOS/Swift FYI 上。 谢谢!

最佳答案

让 loginManager = FBSDKLoginManager() loginManager.logIn(withReadPermissions: ["public_profile", "email", "user_friends"], from: self, handler: { (result: FBSDKLoginManagerLoginResult!, error) -> Void in//获取 fbsdk token 并通过 firebase 登录logIn(withReadPermissions: ["public_profile", "email", "user_friends"], from: self, handler: { (result: FBSDKLoginManagerLoginResult!, error) -> Void in//获取 fbsdk token 并通过 firebase 登录 }) } }

关于ios - 使用 Firebase 匿名登录影响 Facebook 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50243751/

相关文章:

ios - 通过谓词获取今天之前的值

arrays - 快速将协议(protocol)数组转换为任何对象

ios - 全局缓存服务器数据并刷新 View

javascript - 云函数 - 像对象值一样访问 json

ios - Visual Studio 2015 安装程序 在云中构建和模拟 iOS

c# - Apns c# 异常无法从传输连接读取数据现有连接被远程主机强行关闭

javascript - Cloud Functions for Firebase 在数据库事件函数内执行写入操作

android - 无法在 kotlin 中获取 firebase 当前用户

iOS - 处理大型且不断增长的 UIViewController 类

ios - NSLayoutManager boundingRect(forGlyphRange:in :)为RTL语言返回错误的值