2

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

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

谢谢

PS:我的火力基地结构:

{
  "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 ]
    }
  }
}
4

1 回答 1

2

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

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

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

于 2015-03-03T01:45:19.160 回答