Как я могу вызвать переход в AppDelegate? - PullRequest
0 голосов
/ 17 июня 2020

Переход должен происходить только после того, как пользователь прошел аутентификацию в своей учетной записи Google. Этот процесс аутентификации происходит в AppDelegate. У меня есть переход между двумя контроллерами представления, а не кнопка, поэтому при нажатии кнопки переход будет вызываться только один раз. знаком с Firebase:

Auth.auth().signIn(with: credential) { (authResult, error) in
            if let error = error {
                print("Firebase sign In error")
                print(error)
                return
            } else {
                let db = Firestore.firestore()

                db.collection("users").getDocuments() { (querySnapshot, err) in
                    if let err = err {
                        print("Error getting documents: \(err)")
                    } else {
                        print("Accessing email")
                        for document in querySnapshot!.documents {
                            if document.get("uid") as? String != Auth.auth().currentUser?.uid {
                                db.collection("users").addDocument(data: ["firstName": firstName!, "lastName": lastName!, "email": email!, "uid": authResult!.user.uid]) { (error) in
                                    if error != nil {
                                        print("Error: User data not saved")
                                        return
                                    }
                                }
                            }
                        }
                    }
                }
            self.window?.rootViewController!.performSegue(withIdentifier: "googleSegue", sender: nil)
            print("User is signed in with Firebase")

        }
    }
}

Однако self.window?.rootViewController!.performSegue(withIdentifier: "googleSegue", sender: nil) ничего не делает, когда это должно происходить, и переводит пользователя на подключенный контроллер представления после входа в систему. Оператор печати выполняется, поэтому нет ничего неправильного в в этом отношении.

Для справки, вот что происходит в файле viewController:

@IBAction func googleSignInTapped(_ sender: Any) {
        print("User has chosen to sign with Google.")
        GIDSignIn.sharedInstance().signIn()
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...