При передачи данных с firebase выходит ошибка
При логированнии в приложении с firebase выходит ошибка в функции которая парсит данные , эти данные Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
APIManager - тут функции парсинга данных с firebase, в let doc = Document(email: document?.get("email") as! String, nickname: document?.get("nickname") as! String, userName: document?.get("userName") as! String, userLastName: document?.get("userLastName") as! String, userDateBirth: document?.get("userDateBirth") as! String)
Выходят ошибка
class APIManager {
static let shared = APIManager()
// MARK: - Config
private func configFB()->Firestore{
var db:Firestore!
let setting = FirestoreSettings()
Firestore.firestore().settings = setting
db = Firestore.firestore()
return db
}
// MARK: - Get info from db
func getPost(collection:String, docName:String, completion:@escaping(Document?)-> Void){
let db = configFB()
db.collection(collection).document(docName).getDocument { (document, error) in
guard error == nil else {completion(nil); return }
let doc = Document(email: document?.get("email") as! String, nickname: document?.get("nickname") as! String, userName: document?.get("userName") as! String, userLastName: document?.get("userLastName") as! String, userDateBirth: document?.get("userDateBirth") as! String)
completion(doc)
}
}
это из класса с логированием
@IBAction func didTapLoginButton(_ sender: UIButton) {
Auth.auth().signIn(withEmail: self.emailTextField.text!, password: self.passwordTextField.text!) {(result,error) in
if error != nil{
print("ПОЛЬЗОВАТЕЛЬ НЕ НАЙДЕТ !")
}else{
print("Авторизация прошла успешно")
let storyboard = UIStoryboard(name: "Main", bundle: nil)
guard let userID = Auth.auth().currentUser?.uid else { return }
UserSettings.userID = userID
print("------------------USER-ID-----------------")
print("USER ID \(userID)")
print("------------------USER-ID-----------------")
APIManager.shared.getPost(collection: "users", docName: "\(UserSettings.userID)", completion: {doc in
guard doc != nil else{return}
var name = doc?.nickname
var email = doc?.email
print("-----------------------------------------------------------------------")
print("User NAME: \(name)")
var VC = storyboard.instantiateViewController(withIdentifier: "MenuTableViewController")
guard let menuViewController = storyboard.instantiateViewController(identifier:"MenuTableViewController" ) as? MenuTableViewController else {return}
menuViewController.modalPresentationStyle = .fullScreen
guard let tabBarViewContorller = storyboard.instantiateViewController(identifier:"TabBAR" ) as? TabBarViewController else {return}
self.tabBarController?.modalPresentationStyle = .fullScreen
self.present(VC, animated: true, completion: nil) // на SB
}
)}
}
}
Все поля все правильно заполнены из firebase в APIManager

Ответы (1 шт):
Нашел проблему , у меня в памяти телефона остается старый userID из за UserSettings.userID заменив на userID который взят из firebase на пряму , заработало ,но Вот теперь думаю как очистить из памяти телефона старые данные ? Использую UserDefaults но надо удалять по всем ключам сразу данные