在 Swift 3 中无法将 Facebook 用户属性传递给 Firebase FIRAuth

Unable to pass Facebook User properties to Firebase FIRAuth in Swift 3

我正在使用以下函数通过 Facebook 令牌和 Firebase FIRAuth 函数登录用户。 email属性没有错误也没有打印。就好像函数不会被调用一样。

var login = FBSDKLoginManager()

@IBOutlet weak var fbBtnPressed: UIButton!

@IBAction func fbBtnPressed(_ sender: AnyObject) {

    login.logIn(withReadPermissions: ["public_profile", "email", "user_friends"], from: self) { (FBSDKLoginManagerLoginResult, Error) in

        if Error != nil {
            print("The login with Facebook don't working. Erro: \(Error)")
        } else {
            let accessToken = FBSDKAccessToken.current().tokenString
            print("Login with Facebook ok. \(accessToken)")                

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

            FIRAuth.auth()?.signIn(with: credential) { (email, error) in

                if (error != nil) {
                    print("The login in the Firebase broke \(error)")
                } else {
                    print("Login in the Firebase ok \(email)")   
                }   
            }   
        }   
    }       
}

经过大量研究,这似乎是 Swift3 与钥匙串交换相结合的变化。

您必须在您的项目中的功能下启用密钥更改共享。