1

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アカウントを試しましたが、運はありません。何が問題なのでしょうか?

答えて

2

これは、以前のバージョンのFirebase AuthからFirebase Auth 3.xに移行するときに発生します。これは、以前のバージョンでは同じ電子メールアドレスを持つ複数のアカウントを作成できることに関連しています。詳細については、関連するissueをご覧ください。あなたがFirebaseコンソールの認証セクションでPrevent creation of multiple accounts with the same email addressに必要なそれを修正するために

ここではFirebaseコンソールのオプションを示すスクリーンショットです。

Console Screenshot.

+0

ワウ!いいスポット!ありがとう、たくさんの男! – senty

+0

No prob!幸せなコーディング! – Sparq

+0

これは私の問題を解決します! THX! –