Firebase数据库观察器未获取所有子项

时间:2018-09-10 19:20:26

标签: ios swift firebase firebase-realtime-database

我正在观察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()
   }
}

在视图控制器的viewDidLoad()中调用getTasks()的地方:

DatabaseController.sharedInstance.addTableView(tableView)
DatabaseController.sharedInstance.getTasks()

observer方法似乎总是只检索任务标题,而没有其他任何东西,但是当我检查Firebase控制台时,所有信息都在那里。为什么会这样?

谢谢!

0 个答案:

没有答案