Попробуйте это
func login() {
Auth.auth().signIn(withEmail: Email.text!, password: Password.text!) { (results, error) in
if error != nil {
// sign in error (maybe display to the user)
} else {
// go to homescreen here
self.goToHomeScreen()
}
}
}
func goToHomeScreen() {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewController(identifier: "Home")
vc.modalPresentationStyle = .overFullScreen
present(vc, animated: true)
}
Я считаю, что он не работал с вашим кодом, потому что вы проверяете, вошел ли пользователь в систему до завершения метода .signIn (), что означает, что он всегда будет возвращать nil. Используя способ, который я предоставил, вы сначала проверяете, есть ли ошибка входа (были введены неправильные учетные данные), а если нет, он перенаправит вас на домашнюю страницу, и вы войдете в систему.
Также имейте в виду, что импорт Firebase вверху вместе с FirebaseAuth является избыточным. Импорт Firebase охватывает все службы Firebase. Это означает, что если вы просто используете службу аутентификации в этом файле, вы можете удалить импорт Firebase и просто оставить импорт для FirebaseAuth.