快速制作一个应用程序,以便用户可以使用Facebook登录到Firebase,我想获取该应用程序的用户电子邮件,名字和个人资料图片,但是当我单击Facebook登录按钮时,我得到了错误:“在初始化Facebook SDK之前无法启动FBSDKGraphRequestConnection”,我不确定是什么问题。这是我使用的代码:
func loginButtonDidLogOut(_ loginButton:FBLoginButton){
}
func loginButton(_ loginButton: FBLoginButton, didCompleteWith result: LoginManagerLoginResult?, error: Error?) {
guard let token = result?.token?.tokenString else {
print("user failed to login with facebook")
return
}
let facebookRequest = FBSDKLoginKit.GraphRequest(graphPath: "me",
parameters: ["fields": "email, first_name, picture.type(large)"],
tokenString: token,
version: nil,
httpMethod: .get)
facebookRequest.start(completionHandler: { _, result, error in
guard let result = result as? [String: Any],
error == nil else {
print("Failed to make facebook graph request - \(error)")
return
}
print(result)
return
guard let firstName = result["first_name"] as? String,
let email = result["email"] as? String else {
print("Failed to get email and name from fb result")
return
}
})
let credential = FacebookAuthProvider.credential(withAccessToken: token)
FirebaseAuth.Auth.auth().signIn(with: credential) { [weak self] authResult, error in
guard let strongSelf = self else {
return
}
guard authResult == nil, error == nil else {
if let error = error {
print("facebook credential login failed, MFA may be needed - \(error)")
}
return
}
print("successfully logged user in")
strongSelf.transitionToSetUp()
}
}
}
当然,还可以将按钮设置为在viewdidload()中查看。
任何帮助都会很棒!