1

Firebase의 Facebook 로그인을 사용하여 사용자를 인증하고 있습니다. 필자는 프로젝트를 Firebase 3.x로 업그레이드해야하므로이 비트를 변경해야했습니다. 나는 예를 들면 와 함께 user!.displayName와 'photoUrl'로 'fullname'을 얻는 것을 얻었다. '이메일'범위가 설정되어 있어도 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 
      } 
     }) 
    } 

나는 그것이 잘 이메일을 가져 오기 위해 사용했기 때문에 나는 3.x에서를 중포 기지로 업그레이드하기 전에 이메일이 유효 확신 나도 여러 페이스 북 계정을 시도했지만 운이 없었다. 무엇이 문제일까요?

답변

2

이전 버전의 Firebase Auth에서 Firebase Auth 3.x로 마이그레이션 할 때 이런 일이 발생합니다. 이전 버전에서 동일한 이메일 주소로 여러 계정을 만들 수 있다는 것과 관련이 있습니다. 자세한 내용은 관련 issue을 참조하십시오. 당신이 중포 기지 콘솔의 인증 섹션에서 Prevent creation of multiple accounts with the same email address 필요를 해결하기 위해

: 여기

는 중포 기지 콘솔의 옵션을 보여주는 스크린 샷입니다.

Console Screenshot.

+0

와우! 좋은 장소! 고마워요! – senty

+0

No prob! 행복한 코딩! – Sparq

+0

내 문제를 해결합니다! 고마워! –

관련 문제