【发布时间】:2019-01-04 17:25:08
【问题描述】:
我正在制作一个应用程序,用户可以在其中找到该应用程序的所有附近用户。所有用户的位置数据都是这样存储的:
如果我使用该代码代码:
...
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);
}
...
}
...
它只给出最近的用户,而不是附近的所有用户。
我在互联网上搜索了很多但没有任何线索。
【问题讨论】:
-
您确定所有用户都在半径范围内吗?
-
是的。可以肯定的是,我已将半径增加到 10 公里。但结果是一样的。
-
您是否也尝试使用不同的位置坐标,因为您所有的位置都具有大致完全相同的坐标?
-
我也尝试过不同的位置。如果我使用完全相同的位置坐标有什么问题吗?
-
如果你要在地图上看到它们,你只会看到一个,因为它们在它下面,对吧?
标签: android firebase firebase-realtime-database geofire