Запретить отображение начального экрана входа после проверки подлинности Firebase (до создания имени пользователя) - PullRequest
0 голосов
/ 29 марта 2019

После того, как мое приложение Login VC проходит проверку подлинности с помощью firebase, но при нажатии на VC «Создать имя пользователя» кратко отображается начальный Login VC. Я пытаюсь предотвратить это! По сути, он показывает чёрно-синий и черный журнал в VC после того, как новый пользователь создает пароль прямо перед отображением Create Username VC.

Войдите, чтобы создать имя пользователя

enter image description here

(логин ВК)

typealias FIRUser = FirebaseAuth.User

class LoginViewController: UIViewController {

    @IBOutlet weak var loginButton: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    @IBAction func loginButtonTapped(_ sender: Any) {
        guard let authUI = FUIAuth.defaultAuthUI() else { return }

        authUI.delegate = self

        let authViewController = authUI.authViewController()
        present(authViewController, animated: true)
    }

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        self.view.endEditing(true)
    }
}

extension LoginViewController: FUIAuthDelegate { 
    func authUI(_ authUI: FUIAuth, didSignInWith user: FIRUser?, error: Error?) {
        if let error = error {
            assertionFailure("Error signing in: \(error.localizedDescription)")
            return
        }

        guard let user = user else { return }

        UserService.show(forUID: user.uid) { (user) in
            if let user = user {
                User.setCurrent(user, writeToUserDefaults: true)

                let initialViewController = UIStoryboard.initialViewController(for: .main)
                self.view.window?.rootViewController = initialViewController
                self.view.window?.makeKeyAndVisible()

            } else {
                self.performSegue(withIdentifier: Constants.Segue.toCreateUsername, sender: self)
            }
        }
    }
}
...