首页 > 解决方案 > 为什么我的 firebase 数据库子级返回 null?

问题描述

我正在使用 firebase 数据库,我试图使用下面的代码获取孩子的值,并且可能System.out.println(MyCredit.toString());总是返回 null:请查看我的 firebase 数据库

        DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Users");
        ref.addListenerForSingleValueEvent(
                new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) {
                        //Get map of users in datasnapshot
                        CollectCredits((Map<String,Object>) dataSnapshot.getValue());
                    }

                    @Override
                    public void onCancelled(DatabaseError databaseError) {
                        //handle databaseError
                    }
                });



private void CollectCredits(Map<String,Object> users) {

         MyCredit = new ArrayList<>();

        //iterate through each user, ignoring their UID
        for (Map.Entry<String, Object> entry : users.entrySet()){

            //Get user map
            Map singleUser = (Map) entry.getValue();
            //Get Credit field and append to list
            MyCredit.add((Long) singleUser.get("Credit"));

            Toast.makeText(MainActivityCustonlistViewnew.this, "Credit : " +String.valueOf(MyCredit), Toast.LENGTH_SHORT).show();


        }

        System.out.println(MyCredit.toString());
    }


标签: javaandroidfirebase

解决方案


尝试这个:

private void CollectCredits(DataSnapshot dataSnapshot) {

         MyCredit = new ArrayList<>();

        //iterate through each dataSnapshot
        for (DataSnapshot d1 : dataSnapshot.getChildren()){
            MyCredit.add(d1.getValue());

        }
}

推荐阅读