Я наблюдаю за моей базой данных Firebase для .childAdded.Когда я добавляю дочерний (словарь) в базу данных, он должен создать моментальный снимок всех значений для анализа в «Задачу» в моем приложении.
func storeTask(_ task: Task) {
let taskInfo: [String] = [task.title, task.desc, set, due, "\(task.complete)"]
setTaskDatabaseValue(values: taskInfo, dbChild: dbReference.child(task.title))
}
func setTaskDatabaseValue(values val: [String], dbChild db: DatabaseReference) {
db.child("title").setValue(val[0])
db.child("desc").setValue(val[1])
db.child("set").setValue(val[2])
db.child("due").setValue(val[3])
db.child("complete").setValue(val[4])
}
И это мой метод наблюдателя:
func getTasks() {
self.dbReference.observe(.childAdded) { (snapshot) in
let snapVal = snapshot.value as! Dictionary<String,String>
let title = snapVal["title"]!
let desc = snapVal["desc"]!
let set = snapVal["set"]!
let due = snapVal["due"]!
let complete = snapVal["complete"]!
let task = Task(title: title, desc: desc, set: set, due: due, complete: (complete == "true"))
TaskController.sharedInstance.addTaskToLocalList(task)
self.tableView.reloadData()
}
}
Где вызывается getTasks () в viewDidLoad () контроллера представления:
DatabaseController.sharedInstance.addTableView(tableView)
DatabaseController.sharedInstance.getTasks()
Кажется, что метод наблюдателя всегда получает только заголовок задачи и ничего больше, но когда япроверьте консоль Firebase, вся информация там. Почему это?
Спасибо!