【发布时间】:2016-10-26 21:08:59
【问题描述】:
我正在使用 Firebase 在 android 上设计一个基于位置的餐厅搜索应用程序。 firebase 上的餐厅类如下;
restaurants
-key
address: "NYC"
city: "New York"
description: ""
id: 60000
latitude: 39.895107
longitude: 32.797819
name: "Pizza Store"
片段类
mainActivity.mDatabase.child("restaurants").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
System.out.println("There are " + snapshot.getChildrenCount() + " restaurans");
for (DataSnapshot postSnapshot : snapshot.getChildren()) {
Restaurant post = postSnapshot.getValue(Restaurant.class);
mapmap2.put(post.getName(), postSnapshot.getKey());
restaurants.add(post);
}
adapter = new RestaurantCardViewAdapter(getActivity(), restaurants, MapListFragment.this);
mRecyclerView.setAdapter(adapter);
}
@Override
public void onCancelled(DatabaseError firebaseError) {
System.out.println("The read failed: " + firebaseError.getMessage());
}
});
现在,我可以列出所有餐厅。但我想查询用户位置。首先,我想列出用户位置附近的 20 家餐厅,当用户加载页面时,我想获得下 20 家最近的餐厅。我在互联网上进行了一些搜索。我找到了 GeoFire 库,但据我了解,它可以与旧版 firebase 一起使用。如何使用这些条件进行查询?
【问题讨论】:
标签: android firebase location firebase-realtime-database