【发布时间】:2016-10-15 14:40:15
【问题描述】:
我正在使用 Firebase 的 Facebook 登录来验证我的用户。我不得不将我的项目升级到 Firebase 3.x,因此我不得不改变这一点。例如,我用user!.displayName 获得了“全名”,用user!.photoUrl 获得了“photoUrl”;但即使设置了“电子邮件”范围,也无法使用 user!.email 访问电子邮件。
@IBAction func facebookLoginDidTouch(sender: AnyObject) {
let facebookLogin = FBSDKLoginManager()
facebookLogin.logInWithReadPermissions(["public_profile", "email"], fromViewController: self, handler: {
(facebookResult, facebookError) -> Void in
if facebookError != nil {
print("Facebook login failed. Error \(facebookError)")
} else if facebookResult.isCancelled {
print("Facebook login was cancelled.")
} else {
let credential = FIRFacebookAuthProvider.credentialWithAccessToken(FBSDKAccessToken.currentAccessToken().tokenString)
FIRAuth.auth()?.signInWithCredential(credential) { (user, error) in
if error != nil {
print("Login failed. \(error)")
} else {
print("Logged in!")
print(user!.displayName) // works
print(user!.photoUrl) // works
print(user!.email) // returns nil
}
})
}
我很确定这封电子邮件是有效的,因为在我升级到 Firebase 3.x 之前,它可以很好地获取电子邮件。我也尝试了多个 Facebook 帐户,但没有运气。可能是什么问题?
【问题讨论】:
标签: swift facebook facebook-graph-api firebase firebase-authentication