2016-09-18 24 views
0

我正在开发一个使用Firebase的Android应用程序,其中数据结构由酒店表格组成,其中包含城市名称以及纬度和经度,如下图所示。 enter image description here在Firebase中筛选Android

现在,当用户打开应用程序,她的位置被取为经度,纬度,user.Using这些信息我想显示的酒店使用火力地堡是接近用户的列表的城市名称等详细信息。我怎样才能做到这一点。请提前帮助并感谢您。

回答

0

您可能会发现Geofire是你在找什么:

GeoFire设置为JavaScript,Objective-C中, 和Java开源库,允许你存储和查询一组的密钥基于 他们的地理位置。在它的核心,GeoFire只需在字符串键处存储 位置。但是,它的主要优点是 可能仅在特定地理区域内检索那些密钥 - 所有这些都是实时的。

0

使用查询API,你可以做这样,但考虑到火力为您提供了多个错误WHERE子句,这里是例子查询API调用,为你JSON:

Query query = database.child("hotelList").child("hid").orderByChild("latitude").startAt(somevalue).endAt(somevalue); 

query.addValueEventListener() ....检索数据像往常一样,所以它将存储过滤的数据而已,还有你需要一个多where子句,你可以做这样的,里面onDataChange(),所以以后的数据进行过滤:

HotelModel room = dataSnapshot.getValue(HotelModel.class); 
if(room.getLongtitude() > 123 && room.getLongtitude() < 41321) 
{ 
    //add data to listview or whatever 
}