我正在开发一个以Firebase作为后端的Android应用。
到目前为止,它工作非常顺利,我喜欢它,但现在我遇到了一个主要的障碍。
该应用必须搜索特定位置周围的优惠,然后相应地填充ListView
(或RecyclerView
)。
我已经在我的Firebase结构中加入了Geofire,拥有一个主要的交易节点和一个具有相同键的 geofire 节点,Geoquery正在将它们恢复正常。
我的问题是,我从Firebase示例中抓取的FirebaseListAdapter
没有单项添加方法,而是我需要的内容Geoquery将只返回一个密钥。
经过长时间的搜索,我还没能找到处理同一问题的代码示例,所以我想就如何以及哪种方法最有效的方式提出一些建议。实现这一点。
由于
P.S。:我的火力架结构:
{
"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 ]
}
}
}
答案 0 :(得分:2)
FirebaseListAdapter
仅适用于您希望将所有子项从Firebase位置添加到列表中的简单情况。它旨在作为一个简单的帮助类。对于像这样的更复杂的示例,您需要编写自己的ListAdapter
。
收到GeoQuery
的密钥输入事件后,您可以为deals
节点中的实际值添加值监听器。然后,您可以使用这些值事件来填充和更新列表视图。
确保在键退出事件或处理列表视图时删除值侦听器。