Я пытаюсь связать Facebook и Google.Итак, сценарий таков:
Я уже прошел проверку подлинности в Google.Итак, теперь я захожу в Facebook, имея тот же идентификатор электронной почты, который использовался ранее с Google.Итак, я получаю ошибку учетной записи Exists с другими учетными данными.И я сделал это:
func fetchUserInfo()
{
Auth.auth().signInAndRetrieveData(with:FacebookAuthProvider.credential(withAccessToken: (FBSDKAccessToken.current().tokenString)!), completion: { (result, error) in
if let error = AuthErrorCode.init(rawValue: error!._code)
{
switch error
{
case .accountExistsWithDifferentCredential :
let credential = FacebookAuthProvider.credential(withAccessToken: (FBSDKAccessToken.current()?.tokenString)!)
Auth.auth().currentUser?.linkAndRetrieveData(with: credential, completion: { (result, error) in
if let error = error
{
print("Unable to link Facebook Account", error.localizedDescription)
}
else
{
NavigationHelper.shared.moveToHome(fromVC: self)
}
})
default: break
}
}
else
{
GeneralHelper.shared.keepLoggedIn()
if let currentUser = Auth.auth().currentUser
{
print(currentUser.email!)
}
NavigationHelper.shared.moveToHome(fromVC: self)
}
})
}
Здесь в документации Firebase говорится, что нам нужно просто связать currentUser
и получить данные.Но проблема, с которой я сталкиваюсь, заключается в том, что currentUser
всегда равен нулю.Итак, как мне получить текущего пользователя?Я уже пробовал это несколько месяцев назад, а затем я смог связать Facebook, Google и электронную почту.Нужно ли мне signInAndRetrieve
данные от Google, чтобы получить currentUser
?