Firebase iOS, как обнаружить пользователя, ранее зарегистрировавшегося через Google, при попытке зарегистрироваться с поIOS

Программируем под IOS
Ответить
Anonymous
 Firebase iOS, как обнаружить пользователя, ранее зарегистрировавшегося через Google, при попытке зарегистрироваться с по

Сообщение Anonymous »

Я могу сделать это с помощью «Войти с помощью Apple», но, похоже, я не могу сделать это для Google:
Я хочу быть уверен, что если пользователь выберет « Зарегистрируйтесь с помощью Google», они смогут использовать его только в том случае, если на нашей стороне в Firebase Auth не существует учетной записи Google. Если он существует, он должен показать им, что их учетная запись уже существует, и попросить их использовать кнопку «Войти».
Я не вижу способа сделать это. Я попробовал приведенный ниже пример с помощью fetchSignInMethods, но он не только устарел, но и возвращает google.com при регистрации нового пользователя.
private func authWithGoogle(isLogin: Bool) {
guard let clientID = FirebaseApp.app()?.options.clientID else { return }

let config = GIDConfiguration(clientID: clientID)

GIDSignIn.sharedInstance.configuration = config
// Start the sign in flow!
GIDSignIn.sharedInstance.signIn(withPresenting: rootViewController) { [weak self] signinResult, error in
guard let self = self else { return }

if let error = error {
let nsError = error as NSError
if nsError.code == -5 {
return
}

self.handleAuthError(error)
return
}

guard
let user = signinResult?.user,
let idToken = user.idToken?.tokenString else {
self.error(NSError.genericErrorMessage)
return
}

let accessToken = user.accessToken.tokenString

let credential = GoogleAuthProvider.credential(
withIDToken: idToken,
accessToken: accessToken
)

guard let email = user.profile?.email else {
self.error(NSError.genericErrorMessage)
return
}

Auth.auth().fetchSignInMethods(forEmail: email) { (methods, error) in
print("\(methods!)")
if isLogin {
self.loginUserWithCredential(credential, completion: nil)
} else {
Auth.auth().signIn(with: credential) { authResult, error in
if let error = error {
self.handleAuthError(error)
return
}

self.finished(user: authResult!.user, isLogin: false)
}
}
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... -when-tryi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»