我跟着firebases新教程和facebook一起通过facebook验证用户。
我不知道接下来要做什么,因为教程刚刚结束....
这就是我所拥有的
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = UIColor(red: 25.0/255.0, green: 25.0/255.0, blue: 25.0/255.0, alpha: 1.0)
var loginButton: FBSDKLoginButton = FBSDKLoginButton()
let midx = self.view.center.x
loginButton.transform = CGAffineTransformMakeTranslation(midx, 400.0)
self.view!.addSubview(loginButton)
}
func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError?) {
if let error = error {
print(error.localizedDescription)
return
}
self.performSegueWithIdentifier("login", sender: self)
}
它成功登录我,但没有执行segue ..我也试过了一个其他的声明
我是facebook和firebase的新手
答案 0 :(得分:1)
所以我可以看到的问题是你正在调用return函数,之后什么都不会被调用。因此,请尝试删除返回或尝试使用下面提供的代码:
override func viewDidLoad() {
super.viewDidLoad()
fbLogin.readPermissions = ["public_profile", "email", "user_friends"]
fbLogin.delegate = self
}
在你的“func loginButton(loginButton:FBSDKLoginButton!,didCompleteWithResult结果:FBSDKLoginManagerLoginResult!,error:NSError!)”部分
中试试这个{
if error == nil
{
print("Login complete.")
let credential = FIRFacebookAuthProvider.credentialWithAccessToken(FBSDKAccessToken.currentAccessToken().tokenString)
FIRAuth.auth()?.signInWithCredential(credential) { (user, error) in
// ...
}
let accessToken = FBSDKAccessToken.currentAccessToken()
if(accessToken != nil) //should be != nil
{
let req = FBSDKGraphRequest(graphPath: "me", parameters: ["fields":"email,name,age_range,devices,hometown,gender,work"], tokenString: accessToken.tokenString, version: nil, HTTPMethod: "GET")
req.startWithCompletionHandler({ (connection, result, error : NSError!) -> Void in
if(error == nil)
{
print("result \(result)")
}
else
{
print("error \(error)")
}
})
self.performSegueWithIdentifier("login", sender: nil)
}else{
let loginFBAlert = UIAlertController(title: "Oops!", message: "Your login to facebook was interupted", preferredStyle: UIAlertControllerStyle.Alert)
loginFBAlert.addAction(UIAlertAction(title: "Cancel", style: .Default, handler: { (action: UIAlertAction!) in
self.pressedCancelOnAlert()
}))
presentViewController(loginFBAlert, animated: true, completion: nil)
}
print("successfully done")
}
else
{
print(error.localizedDescription)
}
}
那应该有数百个。让我知道如果有问题,但我有这样的设置。
答案 1 :(得分:1)
我有完全相同的问题
你设置了委托吗? ,如果你以编程方式完成,也可以在故事板上试一试
转到登录按钮,然后单击拖动到顶部的小橙色框
并选择委托!
在我的情况下,我确实以编程方式委托它,但它没有工作,所以我改为手动方式!
现在它有效......