我正在制作一个应用程序,用户可以在其中找到该应用程序的所有附近用户。这样存储所有用户的位置数据:
如果我使用该代码:
...
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("users");
GeoFire geoFire = new GeoFire(ref);
GeoQuery geoQuery = geoFire.queryAtLocation(new GeoLocation(Double.parseDouble(userData.getString("latitude","")),Double.parseDouble(userData.getString("longitude",""))), radius);
geoQuery.removeAllListeners();
geoQuery.addGeoQueryEventListener(new GeoQueryEventListener() {
@Override
public void onKeyEntered(String key, GeoLocation location) {
arrayListUserIds.add(key);
}
...
}
...
它仅提供最近的用户,而不是附近的所有用户。
我在互联网上进行了足够的搜索,但是一无所获。
答案 0 :(得分:0)
尝试使用另一个事件侦听器:
geoQuery.addGeoQueryDataEventListener(new GeoQueryDataEventListener() {
@Override
public void onDataEntered(DataSnapshot dataSnapshot, GeoLocation location) {
if (dataSnapshot.exists()) {
arrayListUserIds.add(dataSnapshot.getKey());
}
}
...