我正在开发一个以 Firebase 作为后端的 Android 应用。
到目前为止,它运行得非常顺利,我很喜欢它,但现在我遇到了一个主要障碍。
该应用必须搜索某个位置周围的优惠,然后相应地填充 ListView
(或 RecyclerView
)。
我已经将 Geofire 包含在我的 Firebase 结构中,有一个主 deals 节点和一个具有相同键的 geofire 节点,并且 Geoquery 可以正常返回它们。
我的问题是,我从 Firebase 示例中获取的 FirebaseListAdapter
没有单个项目添加方法,这正是我所需要的,因为 Geoquery 将仅返回一个键到时候。
经过长时间的搜索,我一直无法找到处理相同问题的代码示例,因此我想询问一些关于如何实现此问题的建议,以及实现此问题的最有效方法。
谢谢
附注:我的 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 位置中的所有 子级添加到列表中的简单情况。它旨在作为一个简单的辅助类。对于像这样的更复杂的示例,您将需要编写自己的 ListAdapter
。
收到 GeoQuery
的按键输入事件后,您可以为 deals
节点中的实际值添加值监听器。然后,您可以使用这些值事件来填充和更新 ListView 。
确保在按键退出事件或处置 ListView 时删除值监听器。
关于android - Geoquery 填充 ListView/RecyclerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28800273/