1

ich ein FacebookLogin mit Firebase und den Facebook Login button auszuführen versuchen, aber ich halte dieseFacebook Login mit Firebase und LoginButton Für 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!

Benutzer abgemeldet ...

Facebook-Login wurde immer abgesagt .

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

Mein ViewController Code ist wie folgt:

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...") 
} 


} 

Antwort

0

Diese Methode ist veraltet. Versuchen Sie stattdessen logInWithReadPermissions:fromViewController:handler: zu verwenden und übergeben Sie Ihren UIViewController oder nil (oberste wird verwendet).

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

+0

Ich bin nicht sicher, wha im fromViewController Teil zu setzen. Ich habe Null und hatte das gleiche Problem –

+0

dieser ViewController wird ein aktuelles Ereignis, z. viewWillAppear() nach dem Facebook-Status wird aktualisiert. Ich mag es nicht, es gibt mir weniger Kontrolle, aber eine andere Methode ist veraltet. – Eugene

+0

Ahh ok. Ich habe auch immer noch Probleme mit dem Hundeführer. Ich weiß nicht, was ich dort hinstellen soll. –

Verwandte Themen