存储在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的工作编号,地址,型号。请给我建议一个解决方案。

我的代码在这里

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) {

            }

        });

最佳答案

您正在听一个小孩/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);
    }

10-08 03:06