У меня проблема с проверкой, вошли ли мои пользователи в Firebase и изменением начального контроллера представления - PullRequest
0 голосов
/ 24 марта 2020

Моя цель - проверить, входили ли мои пользователи в мое приложение в Firebase раньше. Затем измените начальный вид контроллера с моего Navigation controller на мой TabBarController. Я хотел бы сделать это для лучшего пользовательского опыта, чтобы им не приходилось входить каждый раз

Также, где лучше всего разместить этот код? мой первый контроллер View или приложение-делегат?

if Auth.auth().currentUser != nil {
        // User is signed in.
        func transitionToTab() {

            let tabBarController =
                storyboard?.instantiateViewController(identifier: Constants.Storyboard.TabBarController) as? TabBarController

            view.window?.rootViewController = tabBarController
            view.window?.makeKeyAndVisible()

        }
    } else {
        // No user is signed in.
        func tranitionToView() {

            _ =
                storyboard?.instantiateViewController(identifier: Constants.Storyboard.HomeViewController) as? ViewController

            view.window?.makeKeyAndVisible()

  }
}

Ответы [ 2 ]

0 голосов
/ 24 марта 2020

Ваша проблема в том, что вы не вызываете функции внутри оператора if/else.

Я бы порекомендовал создать дополнительный экран sla sh, который будет дублировать экран в launchscreen.storyboard, чтобы начать процесс аутентификации. Ваш код должен выглядеть примерно так:

if Auth.auth().currentUser != nil {
            // User is signed in.
            let tabBarController =
                storyboard?.instantiateViewController(identifier: Constants.Storyboard.TabBarController) as? TabBarController

            view.window?.rootViewController = tabBarController
            view.window?.makeKeyAndVisible()
        } else {
            // No user is signed in.
            storyboard?.instantiateViewController(identifier: Constants.Storyboard.HomeViewController) as? ViewController

            view.window?.makeKeyAndVisible()
    }
0 голосов
/ 24 марта 2020

вы можете использовать эту функцию из метода делегата приложения "didFinishLaunchingWithOptions" и сделать так, чтобы пользователь по умолчанию сохранял объект текущего пользователя или любую проверку того, что вы вернетесь, как только пользователь войдет в приложение, и в Appdelegate "didFinishLaunchingWithOptions" проверит, если это правда чем установить начальную страницу tabbarcontroller еще показать экран входа в систему.

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