Работал с Firebase почти пол года и никогда не сталкивался с этой проблемой. Используя код, как и прежде, для создания нового пользователя, он появляется в консоли, когда я закрываю приложение, в которое я могу войти, но используя тот же код, что и всегда, он запрашивает у меня пароль. В первом ВК у меня есть:
if let user = Auth.auth().currentUser {
performSegue(withIdentifier: "authorized", sender: self)
}
Который проверит наличие сохраненного токена аутентификации и выполнит переход к экрану загрузки. Однако этого никогда не происходит. Код запускается, но ничего не делает, никаких ошибок в компиляторе и ошибок в консоли.
РЕДАКТИРОВАТЬ 1: также пытался создать новый проект, где я переписал весь код, получая тот же результат, но мой другой проект работает без каких-либо проблем, также я могу делать что-то еще, кроме этого, используя Firebase, например, доступ к Firestore просто нет сохраняя пользователя, просмотрел всю документацию, но не смог найти решения.
РЕДАКТИРОВАТЬ 2: войти в код
if(email.text != "" && password.text != ""){
Auth.auth().signIn(withEmail: email.text!, password: password.text!) { user, error in
if(error == nil && user != nil) {
userID = (Auth.auth().currentUser?.uid)!
print("Signed in as: \(userID)")
self.performSegue(withIdentifier: "load", sender: self)
} else {
print("Error found: \(error?.localizedDescription)")
}
}
}
Решение:
DispatchQueue.main.async(){
if let user = Auth.auth().currentUser {
userID = (Auth.auth().currentUser?.uid)!
self.performSegue(withIdentifier: "authorized", sender: self)
}
}
Загружен с помощью async, поэтому firebase настроится перед проверкой на подлинность