正如标题所述,我使用keepSynced(true)获取本地数据,并且必须返回视图以获取最新(新鲜)数据。
我有以下设置:
var baseRef: FIRDatabaseReference!
在viewDidLoad中:
baseRef = FIRDatabase.database().reference()
baseRef.child("Posts").keepSynced(true)
然后在viewWillAppear:
baseRef.child("Posts").queryOrderedByChild("sortTimestamp").observeSingleEventOfType(.Value, withBlock: { snapshot in //etc
我得到了本地数据,根据这篇文章,数据应该是新鲜的,因为我在附上一个观察者之前一直保持着:
" keepSynced在启用磁盘持久性和禁用它的情况下都能正常工作。在您附加监听器之前,它会立即获取您启用它的位置/查询的数据"
然而,正如所提到的,我必须再次触发这个,通过走出viewController(几乎像刷新)来获取新数据
我确实尝试了正常的observeEventType(.Value以及.ChildAdded,但是使用了分页系统我使用observeSingleEventOfType除了上面的问题之外效果更好
不确定我缺少什么,我们非常感谢任何建议。