Android 谷歌地图没有把我的标记从数据库中带出来

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;

我试图从我的数据库中获取所有标记,我用这种方式存储它们

现在,我创建了两个标记的ArrayList,一个用于添加所有这些标记,然后将其传递给另一个以删除它们(我正在尝试实时刷新标记,因为它们显示在地图中)

但是我试着用这个来显示标记,它似乎只显示了第一个标记,但没有遍历所有的子对象。以下是我尝试过的:

@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:在发布问题之前,请先通过英语拼写检查程序检查你的问题。特别是,“我是”的缩写是“我是”,加上撇号。指的是你自己(“我”)始终是大写字母。如果您能为您的读者这样做,您的问题将更容易为帮助您的人以及未来的读者阅读。感谢您的建议,以后也可以