首页 > 解决方案 > 如何在 Android Studio 的 Firebase 数据库中检索 1 个子项下的数据列表

问题描述

存储在 Firebase 中的数据:

 29-06-2018(date)

     -AAAA
           -25142(jobno)
           -Park station(address)
           -BMW(model)

     -BBBB 
           -85142(jobno)
           -Base station(address)
           -Ford(model)

在这里,我想要-BBBB 下的所有孩子。不想循环通过 AAAA。如何直接得到BBBB的孩子。我有数据(日期,BBBB)。只想获取BBBB的jobno,地址,型号。请建议我一个解决方案。

我的代码在这里

DatabaseReference database = FirebaseDatabase.getInstance().getReference();
        DatabaseReference pwd = database.child("29-06-2018").child("BBBB");

        pwd.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for (DataSnapshot ds : dataSnapshot.getChildren()) {    
                        String a = ds.child("jobno").getValue(String.class);
                        String b = ds.child("address").getValue(String.class);
                        String c = ds.child("model").getValue(String.class);

                }
            }

            @Override
            public void onCancelled(DatabaseError error) {

            }

        });

标签: androidfirebasefirebase-realtime-database

解决方案


你在听一个独生子女/29-06-2018/BBBB。通过循环dataSnapshot.getChildren()遍历每个属性,然后尝试到达每个属性的子属性。那是行不通的,所以你应该摆脱循环onDataChange

pwd.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot ds) {
        String a = ds.child("jobno").getValue(String.class);
        String b = ds.child("address").getValue(String.class);
        String c = ds.child("model").getValue(String.class);
    }

推荐阅读