Когда пользователь входит в систему с помощью Gmail или Facebook, его перенаправляют на страницу для ввода дополнительной информации о своей учетной записи (поскольку один только Gmail или Facebook не предоставляет необходимую информацию о пользователе), а после ввода пользователем этогоВ соответствии с информацией, пользователь вошел с этим провайдером в базу данных firebase, а его информация сохранена в базе данных реального времени в базе данных firebase.
Мой вопрос таков: когда пользователь снова входит в систему с этой учетной записью, он перенаправляется на страницу для ввода уже введенной информации.Итак, как мне узнать, зарегистрировался ли пользователь уже в Facebook или Gmail, чтобы я мог обойти этот экран и перейти прямо к приложению?
Я думал о том, чтобы просто войти в систему с уважаемым пользователем.провайдер, как только провайдер завершит вход в систему, затем сверите userID с идентификатором, созданным в базе данных, чтобы увидеть, существует ли он, и, если нет, перенесите их на экран для ввода данных.Однако при таком подходе меня беспокоит, что если пользователь попадет на экран ввода данных, затем закроет приложение и снова откроет его, пользователь войдет в систему без этой информации.Есть ли другой способ сделать это?спасибо!
как я вхожу в Facebook:
FBSDKLoginManager().logIn(withReadPermissions: ["email"], from: self) { (result, err) in
if err != nil {
print("Custom FB Login failed:", err)
self.popup.showUnsuccessfullAlert(message: "Failed to login with facebook")
return
}
print("the result from logging in = \(result)")
self.showEmailAddress()
}
и как я вхожу в Google:
func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) {
if let err = error {
print("falied to log into google", err)
self.popup.showUnsuccessfullAlert(message: "Failed to login with google")
return
}else{
print("successfully logged into google ", user)
self.gmailUser = user
performSegue(withIdentifier: "toSignUpGmail", sender: nil)
}
}