我正在尝试使用 Firebase
和 Facebook 登录按钮
执行 FacebookLogin
,但我一直收到这个
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!
用户登出...
Facebook 登录已取消。
2016-04-01 19:08:53.675 biblos[778:408049] Warning: Attempt to present on whose view is not in the window hierarchy!
我的ViewController
代码如下:
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...")
}
}
最佳答案
此方法已弃用。尝试使用 logInWithReadPermissions:fromViewController:handler:
并传递您的 UIViewController 或 nil(将使用最顶层)。
https://developers.facebook.com/docs/reference/ios/current/class/FBSDKLoginManager/
关于ios - Facebook 使用 Firebase 和 LoginButton 登录 IOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36368458/