просто для начала я посмотрел на множество примеров, но не могу найти решение.Ну, я думал, что сделал, но, похоже, это не работает.
Я пытаюсь использовать метод авторизации Firebase для входа в Facebook, который работает, кстати.Моя проблема заключается в том, что я хочу связать учетные данные аутентификации пароля и учетные данные авторизации facebook, когда метод facebook выдает ошибку, что электронная почта / учетные данные уже существуют.Я прочитал здесь , что я мог бы использовать 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)
})
}
}