1

Je suis en train d'effectuer une FacebookLogin en utilisant Firebase et le Facebook Login button, mais je continue à obtenir cetteFacebook Connectez-vous avec Firebase et LoginButton Pour IOS

error:Facebook login was cancelled.

2016-04-01 19:08:15.721 biblos[778:408049] Warning: Attempt to present on whose view is not in the window hierarchy!

utilisateur déconnecté ...

Facebook connexion a été annulée .

2016-04-01 19:08:53.675 biblos[778:408049] Warning: Attempt to present on whose view is not in the window hierarchy!

Mon code ViewController est la suivante:

import UIKit 
import Firebase 
import FBSDKCoreKit 
import FBSDKLoginKit 

class ViewController: UIViewController, FBSDKLoginButtonDelegate { 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 


    var loginButton = FBSDKLoginButton() 
    loginButton.readPermissions = ["public_profile", "email", "user_friends"] 
    loginButton.center = self.view.center 
    loginButton.delegate = self 
    self.view.addSubview(loginButton) 

} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 




// MARK: - Facebook Login 

func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) 
{ 
    let ref = Firebase(url: "https://biblos-thebookapp.firebaseio.com") 
    let facebookLogin = FBSDKLoginManager() 

    facebookLogin.logInWithReadPermissions(["email"], 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 accessToken = FBSDKAccessToken.currentAccessToken().tokenString 

      ref.authWithOAuthProvider("facebook", token: accessToken, 
       withCompletionBlock: { error, authData in 

        if error != nil { 
         print("Login failed. \(error)") 
        } else { 
         print("Logged in! \(authData)") 
        } 
      }) 
     } 
    }) 

} 

func loginButtonDidLogOut(loginButton: FBSDKLoginButton!) 
{ 
    print("User logged out...") 
} 


} 

Répondre

0

Cette méthode est dépréciée. Essayez d'utiliser logInWithReadPermissions:fromViewController:handler: à la place et passez votre UIViewController ou nul (le plus haut sera utilisé).

https://developers.facebook.com/docs/reference/ios/current/class/FBSDKLoginManager/

+0

Je ne suis pas sûr de mettre wha dans la partie fromViewController. J'ai mis zéro et eu le même problème –

+0

ce viewController obtiendra un événement mis à jour, par exemple. viewWillAppear() après l'état de Facebook sera mis à jour. Je ne l'aime pas, cela me donne moins de contrôle, mais une autre méthode est déconseillée. – Eugene

+0

Ahh ok. J'ai aussi toujours des problèmes avec le conducteur. Je ne sais pas quoi y mettre. –