如何在没有旧索引和新索引的情况下使用Event ChildMoved

时间:2016-10-25 23:07:29

标签: swift firebase firebase-realtime-database

我正在使用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的事件,其中包含快照,但没有关于“移动转换”的信息,例如旧/新指数(位置)。因此,我的问题是,当数据以订单发生变化的方式发生变化时,还有另一种更新表的方法吗?

0 个答案:

没有答案