我正在使用Firebase开发一个Android应用程序,其中数据结构由Hotel表组成,包括城市名称以及纬度和经度,如下图所示。
现在,当用户打开应用程序时,会获取其位置,其中包含用户的纬度,经度,城市名称等详细信息。使用这些信息,我想显示使用Firebase的用户附近的酒店列表。我怎样才能做到这一点。请提前帮助并谢谢。
答案 0 :(得分:0)
您可能会发现Geofire是您正在寻找的内容:
GeoFire是一套用于JavaScript的开源库,Objective-C, 和Java,允许您存储和查询基于的一组键 他们的地理位置。从根本上说,GeoFire只是存储 带有字符串键的位置。然而,它的主要好处是 仅检索给定地理内的那些密钥的可能性 区域 - 全部实时。
答案 1 :(得分:0)
使用Query api,你可以这样做,但是考虑firebase会给你多个where子句的错误,这里是查询api调用的例子,对你来说json:
Query query = database.child("hotelList").child("hid").orderByChild("latitude").startAt(somevalue).endAt(somevalue);
比
query.addValueEventListener()
....像往常一样检索数据,因此它只会存储过滤后的数据,你需要在onDataChange()
内部使用多个where子句,所以在数据之后过滤:
HotelModel room = dataSnapshot.getValue(HotelModel.class);
if(room.getLongtitude() > 123 && room.getLongtitude() < 41321)
{
//add data to listview or whatever
}