使用android从firebase中获取大型数据集

时间:2016-05-20 12:35:14

标签: android web-services firebase firebase-realtime-database nosql

我正在Android中创建一个健身应用程序,用于存储来自谷歌地图的不同路线。这些路线由纬度和长坐标点组成。我已经设法保存这些点,但我在检索它们时遇到了问题。这些路线可能很大,因此每条路线可能有几百个点。

我现在正尝试从firebase位置获取所有数据并将它们放入列表中,然后使用该列表在地图上显示折线。问题是主线程没有等待列表填充点,所以列表最终没有点。我现在获取点的代码是这样的:

        Firebase pointsRef = new Firebase(Config.POINTS_URL).child(point_collection_id);
        pointsRef.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot snapshot) {
                // do some stuff once
                Log.v("There are: ", snapshot.getChildrenCount() + "points");
                for (DataSnapshot snap : snapshot.getChildren()) {
                    Point point = snap.getValue(Point.class);
                    Point otherPoint = new Point(point.getLatitude(), point.getLongitude());

                    Log.v("pointsLogging", "otherPoint.getLatitude()" +otherPoint.getLatitude());
                    Log.v("pointsLogging", "otherPoint.getLongitude()" + otherPoint.getLongitude());

                    listPoints.add(otherPoint);
                    Log.v("pointsLogging", "size of list in method" + listPoints.size());
                }
            }
            @Override
            public void onCancelled(FirebaseError firebaseError) {
            }
        });
    }

    Log.v("pointsLogging", "listPoints.size()" + listPoints.size());

这是 logcat

无论如何都要检查是否已添加所有积分?或者有人知道更好的方法吗? 谢谢

0 个答案:

没有答案