Geofire 一次查询而不是 1 乘 1

Geofire query at once instead of 1 by 1

我下面的代码片段,它首先查询 geo keys 然后查找与 value 事件相关的数据。但是有一个问题,键是 return 1 x 1 所以我的列表视图也逐行显示。如何在 ONCE 中查询 geo keys

geoQuery.on('ready', () => {
  geoQuery.cancel()
})

geoQuery.on("key_entered", (key, location, distance) => {
  postsRef.child(key).once('value', (snapshot) => {
    dispatch({
      type: FETCH_NEARBY_SUCCESS,
      response: normalize(snapshot.val(), schema.post)
    })
  })
})

这是预期的行为:key_entered 事件针对最初位于范围内的每个键触发一次,然后在每个键进入范围时触发一次。

如果您想在加载初始数据后执行一些更新,例如延迟更新屏幕,可以监听ready事件。来自 documentation

ready fires once when this query's initial state has been loaded from the server. The ready event will fire after all other events associated with the loaded data have been triggered.