gpt4 book ai didi

ios - Swift - 从 facebook 登录中获取错误

转载 作者:行者123 更新时间:2023-11-29 11:34:33 25 4
gpt4 key购买 nike

刚开始我已经看过很多例子,但似乎找不到解决方案。好吧,我以为我做到了,但它似乎不起作用。

我想做的是使用 Facebook 的 Firebase 身份验证登录方法,顺便说一句。我的问题是当 facebook 方法抛出电子邮件/凭据已存在的错误时,我想链接密码 auth 凭据和 facebook auth 凭据。我读了here我可以使用 error.email 但它没有给我访问 email.error 的选项。我可能遗漏了一些东西,我花了很多时间试图弄明白。

这是我的代码:

func signInFacebookUser() {
let fbLoginManager = FBSDKLoginManager()
fbLoginManager.logIn(withReadPermissions: ["public_profile", "email"], from: self) { (result, error) in
if let error = error {
self.errorMessagePopUp(title: "Failed to login", message: error)
return
}

guard let accessToken = FBSDKAccessToken.current() else {
print("Failed to get access token")
return
}

let credential = FacebookAuthProvider.credential(withAccessToken: accessToken.tokenString)

Auth.auth().signIn(with: credential, completion: { (user, error) in
if let error = error {

let errCode = AuthErrorCode(rawValue: error._code)!

switch errCode {

case .accountExistsWithDifferentCredential:
// somehow obtain email right here.
self.showSigninForm(attributes: self.attributes(), style: .light)
return

default:
return
}
}

self.performSegue(withIdentifier: "signInBtnPressed", sender: nil)
})
}
}

最佳答案

这适用于我的 Swift4

@objc func loginButtonClicked() {
var alertController = UIAlertController()
let loginManager = LoginManager()
loginManager.logIn(readPermissions: [ReadPermission.email], >viewController: self, completion: {loginResult in
switch loginResult {
case .failed(let error):
print(error)
case .cancelled:
print("User cancelled login.")
case .success(_, _, let accessToken):
print(accessToken)

}

})
}
 func getDataUser() {
let request = GraphRequest(graphPath: "me?fields=first_name,last_name,email",
parameters:[:],
httpMethod: .GET)
request.start { httpResponse, result in
switch result {
case .success(let response): do {
print("Graph Request Succeeded: \(response)")
let dicval = response.dictionaryValue
let email = dicval?.keys
print("Graph Request Succeeded: \(String(describing: email))")
}
case .failed(let error):
print("Graph Request Failed: \(error)")
}

}
}
}

关于ios - Swift - 从 facebook 登录中获取错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50558802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com