在 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 与钥匙串交换相结合的变化。
您必须在您的项目中的功能下启用密钥更改共享。
我正在使用以下函数通过 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 与钥匙串交换相结合的变化。
您必须在您的项目中的功能下启用密钥更改共享。