首页 > 解决方案 > 如何在片段中显示数据在节点子节点内的数据?

问题描述

我在片段中显示所有数据的编码:-

    DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Advertisement").child("tuitionPackages").child("0");

    ref.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if (dataSnapshot.exists() && dataSnapshot.getChildrenCount() > 0) {

                Map<String, Object> map = (Map<String, Object>) dataSnapshot.getValue();

                String academicLevel,packageStatus,price,subjects;

                if (map.get("packageStatus") != null) {
                    packageStatus = map.get("packageStatus").toString();
                    mPackageType.setText(packageStatus);
                }
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
        }

    });

我的数据库:-

在此处输入图像描述

我显示学费包的输出:-

在此处输入图像描述

标签: androidfirebaseandroid-studiofirebase-realtime-databasefragment

解决方案


您可以尝试使用此代码从您的 firebase 数据库中获取数据,然后您可以使用该数据在片段中完成您的字段。

DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Advertisement").child(ID1).child(ID2).child("tuitionPackages");

ref.addListenerForSingleValueEvent(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                       String acadLvl = dataSnapshot.child("academicLevel").getValue(String.class);
                       String packStatus = dataSnapshot.child("packageStatus").getValue(String.class);
                       int price = dataSnapshot.child("price").getValue(Integer.class);
                       String sub = dataSnapshot.child("subjects").getValue(String.class);

                        }
                    }

                    @Override
                    public void onCancelled(@NonNull DatabaseError databaseError) {

                    }
                });

在这段代码ID1ID2,我可以在 node 下的数据库图像中看到字符串Advertisement


推荐阅读