当用户第一次通过Facebook登录时,我的应用程序有时会崩溃,这次崩溃的原因是由于某种原因(我再说一遍)有时这个用户在解析数据库中被创建为空,它只获取一个Auth数据,并且每个其他字段都是空的,所以当我得到parseUser时它完全为空,一切都崩溃了。我知道我可以验证一切,所以它不会崩溃,但我的问题是为什么会发生这种情况?为什么总是这样?发生什么事?我在我的代码中请求al权限和用户需要的所有信息。
这是我正在使用的整个方法:我真的希望有人可以帮助我:
func fbLogin (successBlock:(result:User) -> () , errorBlock: (error:String) -> ()) {
PFFacebookUtils.logInInBackgroundWithReadPermissions(kFbPermissions, block: {
(user: PFUser?, error: NSError?) -> Void in
if let user = user {
if user.isNew {
println("User signed up and logged in through Facebook!")
FBSDKGraphRequest(graphPath: "me", parameters: nil).startWithCompletionHandler({ (connection, result, error) -> Void in
var loggedUser = User(result: result,aParseObject: user)
loggedUser.saveUser()
appDelegate.loggedUser = loggedUser
successBlock (result: loggedUser
})
})
} else {
println("User logged in through Facebook!")
var loggedUser = User(aParseObject: user)
appDelegate.loggedUser = loggedUser
println (appDelegate.loggedUser!.objectId)
successBlock(result: loggedUser)
}
} else {
println("Uh oh. The user cancelled the Facebook login.")
errorBlock (error: localizedStringForKey("loginCanceled"))
}
})
}