Пытаюсь изменить данные в уже созданной записи в Firebase, а мне выдает “fatal error: unexpectedly found nil while unwrapping an Optional valuе”
// КЛАСС SHOWVIECONTROLLER
var posts :Post?
var refNotes: DatabaseReference!
func saveCustomer()->Bool{
if posts == nil{
print("ничего нет")
add()
}else{
print("что-то есть")
let id = self.posts?.postID
let name = nameTextField.text
let surname = surnameTextField.text
self.update(id: id!, name: name!, surname: surname!)
}
return true
}
func add(){
let name = nameTextField.text
let surname = surnameTextField.text
let dateSting = String(describing: Date())
let parameters = ["surname" : surname,
"name" : name,
"date" : dateSting]
DatabaseService.shared.postReference.childByAutoId().setValue(parameters)
}
func update(id:String, name:String, surname:String){
let dateSting = String(describing: Date())
let parameters = ["id" : id,
"name" : name,
"surname": surname,
"date" : dateSting]
refNotes.child(id).setValue(parameters) // ОШИБКА ЗДЕСЬ
}
// CТРУКТРА POST
> import Foundation
> struct Post {
> let postID: String
> let name: String
> let surname: String
> let date: Date
init?(postID:String?, dict: [String:Any]){
self.postID = postID!
let dataFormatter = DateFormatter()
dataFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss +zzzz"
guard let name = dict["name"] as? String,
let surname = dict["surname"] as? String,
let dateString = dict["date"] as? String,
let date = dataFormatter.date(from: dateString)
else { return nil }
self.name = name
self.surname = surname
self.date = date
}
}
Абсолютно не могу понять откуда там берется nil.
Притом что ошибка есть даже если передавать сразу готовые значения.