我正在尝试遍历数据快照中收到的每个孩子并将密钥放在地图中。在下面的代码片段中,执行似乎停止了我将数据放入地图的位置。
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上。
答案 0 :(得分:0)
找出问题所在。
我已将我的列表声明为
Map<String, List<UserFixtures>> userPredictions
但我本来应该......
Map<String, List<UserFixtures>> userPredictions = new HashMap<>();