用于填充 ListView/RecyclerView 的地理查询

Geoquery to populate a ListView/RecyclerView

我正在开发一个以 Firebase 作为后端的 Android 应用程序。 到目前为止,它工作得非常顺利,我喜欢它,但现在我遇到了一个主要障碍。 该应用程序必须搜索特定位置周围的交易,然后相应地填充 ListView(或 RecyclerView)。 我已经在我的 Firebase 结构中包含了 Geofire,有一个主 deals 节点和一个具有相同键的 geofire 节点,Geoquery 是 return他们很好。

我的问题是我从 Firebase 示例中获取的 FirebaseListAdapter 没有单个项目添加方法,这是我需要的,因为 Geoquery 会 return一次只有一把钥匙。 经过长时间的搜索,我一直未能找到处理同一问题的代码示例,因此我想就如何以及哪种是最有效的实现方式寻求一些建议。

谢谢

P.S.: 我的 firebase 结构:

{
  "deals" : {
    "-JikH6yjJ9TblE8_4fX4" : {
      "category" : "Food",
      "description" : "example description",
      "location" : "George St, Brisbane",
      "title" : "some title",
    }
  },
  "geofire" : {
    "-JikH6yjJ9TblE8_4fX4" : {
      ".priority" : "r7hgf2d639",
      "g" : "r7hgf2d639",
      "l" : [ -27.46268003, 153.03172851 ]
    }
  }
}

FirebaseListAdapter 仅适用于您想要将来自 Firebase 位置的 all 个子项添加到列表中的简单情况。它旨在作为一个简单的助手 class。对于像这样更复杂的示例,您将需要编写自己的 ListAdapter.

收到 GeoQuery 的键输入事件后,您可以为 deals 节点中的实际值添加一个值侦听器。然后您可以使用这些值事件来填充和更新您的列表视图。

确保在键退出事件或处理列表视图时删除值侦听器。