Android 谷歌地图没有把我的标记从数据库中带出来
我试图从我的数据库中获取所有标记,我用这种方式存储它们 现在,我创建了两个标记的ArrayList,一个用于添加所有这些标记,然后将其传递给另一个以删除它们(我正在尝试实时刷新标记,因为它们显示在地图中) 但是我试着用这个来显示标记,它似乎只显示了第一个标记,但没有遍历所有的子对象。以下是我尝试过的:Android 谷歌地图没有把我的标记从数据库中带出来,android,google-maps,firebase,firebase-realtime-database,Android,Google Maps,Firebase,Firebase Realtime Database,我试图从我的数据库中获取所有标记,我用这种方式存储它们 现在,我创建了两个标记的ArrayList,一个用于添加所有这些标记,然后将其传递给另一个以删除它们(我正在尝试实时刷新标记,因为它们显示在地图中) 但是我试着用这个来显示标记,它似乎只显示了第一个标记,但没有遍历所有的子对象。以下是我尝试过的: @Override public void onMapReady(final GoogleMap googleMap) { mMap = googleMap;
@Override
public void onMapReady(final GoogleMap googleMap) {
mMap = googleMap;
mDatabase.child("usuarios").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (Marker marker : realTimeMarkers) {
marker.remove();
}
for(DataSnapshot snapshot : dataSnapshot.getChildren()){
MapsPojo mp = snapshot.getValue(MapsPojo.class);
Double latitud = mp.getLatitud();
Double longitud = mp.getLongitud();
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(new LatLng(latitud,longitud));
markerOptions.snippet("ID: "+snapshot.getKey());
tmpRealTimeMarkers.add(mMap.addMarker(markerOptions));
}
realTimeMarkers.clear();
realTimeMarkers.addAll(tmpRealTimeMarkers);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
其中realTimeMarkers和tmpRealTimeMarkers:
private ArrayList<Marker> tmpRealTimeMarkers = new ArrayList<Marker>();
private ArrayList<Marker> realTimeMarkers = new ArrayList<Marker>();
private ArrayList tmpRealTimeMarkers=new ArrayList();
private ArrayList realTimeMarkers=new ArrayList();
另外,提示也不存在,我运行了调试器,似乎它没有在我的foreach
中输入所有纬度和经度。(代表问题作者发布)
错误解决了!我在数据库中放置了相同的标记,它们被堆叠起来。使用
addValueEventListener(新的ValueEventListener(){
而不是addListenerForSingleValueEvent(新的ValueEventListener()){
还是同一个peteri做了一个日志,我认为它只检索到一个值-31.3703015Long-64。3575491@Gastón:在发布问题之前,请先通过英语拼写检查程序检查你的问题。特别是,“我是”的缩写是“我是”,加上撇号。指的是你自己(“我”)始终是大写字母。如果您能为您的读者这样做,您的问题将更容易为帮助您的人以及未来的读者阅读。感谢您的建议,以后也可以