나는 firebase로 안드로이드 기반의 위치 기반 레스토랑 검색 응용 프로그램을 디자인하고 있습니다. firebase에 다음과 같은 레스토랑 클래스;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로 작업하는 것을 이해합니다. 이러한 기준으로 어떻게 쿼리 할 수 있습니까?
대단히 감사합니다. GeoFire의 속성을 검색합니다. 하지만 몇 가지 의구심이 있습니다. 위치 항목을 레스토랑에서 분리하여 보관하는 것이 좋습니다. 같은 위치 루트에 레스토랑 ID와 검색어가있는 위치 정보를 입력합니다. 이 링크와 마찬가지로 http://stackoverflow.com/questions/38340949/how-to-save-geofire-coordinates-along-with-other-items-in-firebase-database. 그러나 나는 그 위치를 묻는다면 가장 가까운 레스토랑 키를 얻을 것이라고 이해하지 못합니다. 그 후에, 나는이 열쇠들로이 식당을 찾아야 해. 어떻게해야할까요, 값 비싼 데이터베이스가 아닌가요? – starrystar