以下是我的 Firebase数据库图:
根元素链接中有三个个子级。当我执行以下循环以获取所有子代时,它仅返回第一个子代的结果
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference ref = database.getReference("links");
int count=0;
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(Datasnapshot datasnapshot) {
Log.d("Firebase","Children: "+datasnapshot.getchildren().toString()); //This gives result for all children
for (Datasnapshot ds : datasnapshot.getchildren()) {
count++;
}
Log.d("Firebase","Count length: "+count); //Gives only "1"
}
@Override
public void onCancelled(DatabaseError databaseError) {
System.out.println("The read failed: " + databaseError.getcode());
}
});
在上面的代码中,count
应该为3,但返回1。循环仅执行一次。
但是上面代码中的以下行可以正常工作,并给出所有3个子级的结果。
Log.d("Firebase","Children: "+datasnapshot.getchildren().toString());
问题出在哪里?感谢您的回答!