我正在使用Firebase存储一些数据并按日期排序
let query = FIRDatabase.database().reference().child("entry").
queryOrderedByChild("time_start")
然后我正在听这个查询的以下事件:
FIRDataEventType.ChildChanged
FIRDataEventType.ChildAdded
FIRDataEventType.ChildMoved
FIRDataEventType.ChildRemoved
在数据库中,我将修改日期条目,然后FIRDataEventType.ChildMoved
后面跟FIRDataEventType.ChildChanged
被触发,但表上的顺序没有变化。
如何使用它来更新订单已更改的tableView
?是否有“智能”方式或者我必须对...queryOrderedByChild
方法进行新的调用?
更新
为什么在代码没有失败但缺少移动内容的功能时,任何人都需要“最小示例”?
e.g。当我使用Core Data和NSFetchedResultsController
时,我有一个委托方法controller(controller: NSFetchedResultsController, didChangeObject anObject: AnyObject, atIndexPath indexPath: NSIndexPath?, forChangeType type: NSFetchedResultsChangeType, newIndexPath: NSIndexPath?)
,对于类型.Move
,我给出了旧索引和新索引,然后我可以使用它来操作表来删除来自旧索引并插入新索引。
使用Firebase我得到的是一个名为.ChildMoved
的事件,其中包含快照,但没有关于“移动转换”的信息,例如旧/新指数(位置)。因此,我的问题是,当数据以订单发生变化的方式发生变化时,还有另一种更新表的方法吗?