无法遍历Firebase上的每个孩子

时间:2017-12-30 15:51:34

标签: java google-app-engine firebase firebase-realtime-database

我正在尝试遍历数据快照中收到的每个孩子并将密钥放在地图中。在下面的代码片段中,执行似乎停止了我将数据放入地图的位置。

        FirebaseDatabase.getInstance().getReference().child("Fixtures").addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot snapshot) {

            if (snapshot.exists()) {

                long childcount = snapshot.getChildrenCount();

                    for (DataSnapshot ds : snapshot.getChildren()) {

                        String currentuser = ds.getKey();
                        List<UserFixtures> emptyList = new ArrayList<>();
                        userPredictions.put(currentuser, emptyList);

                        childcount--;

                        if (childcount == 0) {
                            addFixturestoUserPredictions();
                        }

                }
            }
        }
        @Override
        public void onCancelled (DatabaseError error){

        }
    });

所以有三个子节点,但在第一次迭代中,执行在map.put方法之后停止。它不会崩溃,它只会停止,甚至不会达到子计数 - ;我不知道发生了什么。

快照肯定包含所有三个孩子及其数据。

此代码位于Google App Engine上。

1 个答案:

答案 0 :(得分:0)

找出问题所在。

我已将我的列表声明为

Map<String, List<UserFixtures>> userPredictions

但我本来应该......

Map<String, List<UserFixtures>> userPredictions = new HashMap<>();