Как узнать, создан ли пользователь firebase для Facebook и Gmail? - PullRequest
0 голосов
/ 02 апреля 2019

Когда пользователь входит в систему с помощью 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)

    }
}

1 Ответ

0 голосов
/ 02 апреля 2019

Этот метод можно использовать в файле AppDelegate.swift.

func applicationWillEnterForeground(_ application: UIApplication) {
   //check if the user exists here and do something about it.
}

Эта функция будет выполняться каждый раз, когда пользователь открывает приложение после его закрытия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...