0

我正在使用一个 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 方法之外定义的。

我将非常感谢您的回答:) 非常感谢!

4

0 回答 0