FirebaseのFacebookログインを使用してユーザーを認証しています。私は自分のプロジェクトをFirebase 3.xにアップグレードしなければならなかったので、このビットを変更しなければなりませんでした。私はuser!.displayName
と 'fullURL'を取得し、例えば、user!.photoUrl
と 'photoUrl'を達成しました。 'email'スコープが設定されていても、user!.email
でメールにアクセスすることはできません。Facebookで認証されたユーザーから電子メールを受け取ることができません
@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アカウントを試しましたが、運はありません。何が問題なのでしょうか?
ワウ!いいスポット!ありがとう、たくさんの男! – senty
No prob!幸せなコーディング! – Sparq
これは私の問題を解決します! THX! –