2016-09-19 2 views
0

Swift 3으로 이동 한 후 문제가 있습니다 - 사용자가 facebook 로그인 버튼에 연결을 클릭하면 아무 반응이 없습니다.Facebook에 로그인 한 후 Firebase에 로깅하지 않음, Swift 3

func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!) { 
     print("user logged in") 
     self.loginButton.isHidden = true 
     activityIndicator.startAnimating() 
     if error != nil { 
      self.loginButton.isHidden = false 
      activityIndicator.stopAnimating() 
      print("???") 
      //handle errors 
     } else if result.isCancelled { 
      self.loginButton.isHidden = false 
      activityIndicator.stopAnimating() 
      let loginManager = FBSDKLoginManager() 
      loginManager.logOut() 
      //handle cancel 
      print("canceled") 
     } else { 
      let credential = FIRFacebookAuthProvider.credential(withAccessToken: FBSDKAccessToken.current().tokenString) 
      FIRAuth.auth()?.signIn(with: credential) { (user, error) in 
       print("user logged to firebase app") 

      } 
     } 

그것은 user logged in를 인쇄하지 않으며, 또한이 코드가 당신을 도울 것입니다 희망 user logged to firebase app

답변

0

를 인쇄하지 않습니다

이것은 스위프트 3으로 이동 한 후 내 코드입니다.

func fbLogin() { 
    let facebookLogin = FBSDKLoginManager() 

    // MARK:- Sign In with facebook. 
    facebookLogin.logIn(withReadPermissions: ["email"], from: self) { (facebookResult, facebookError) -> Void in 
     if facebookError != nil { 
      print("Facebook login failed. Error \(facebookError.debugDescription)") 
      // handle if there is an error 
     } else if (facebookResult?.isCancelled)! { 
      print("Facebook login was cancelled") 
      // handle if facebook login was canceled 
     } else { 
      // Sign in to Firebase with facebook credential. 
      let credential = FIRFacebookAuthProvider.credential(withAccessToken: FBSDKAccessToken.current().tokenString) 
      FIRAuth.auth()?.signIn(with: credential) { user, error in 
       if error != nil { 
        print("Login failed. \(error.debugDescription)") 
        // handle alert for error 
       } else { 
        guard let currentUser = user else { return } 
        print("Login success \(currentUser.uid)") 
        // do something with currentUser 

       } 
      } 
     } 
    } 
} 
관련 문제