我正在使用一个 firebase 数据库,我想遍历一个节点的所有子节点。我正在使用以下代码:
ArrayList<versicherungHelper> versicherungsListe = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
.....not relevant coding...
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("users/Frank/Versicherungen");
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
versicherungHelper versicherung = snapshot.getValue(versicherungHelper.class);
versicherungsListe.add(versicherung);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Snackbar snackbar = Snackbar.make(findViewById(R.id.drawer_layout),String.valueOf(versicherungsListe.size()),Snackbar.LENGTH_SHORT);
snackbar.show();
当我在for循环中检查列表“versicherungsListe”的长度时,结果不为0。当我在侦听器之后检查列表的长度时,结果为0。
这个怎么可能?如您所见,数组列表是在 onCreate 方法之外定义的。
我将非常感谢您的回答:) 非常感谢!