存储在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) {
}
});
答案 0 :(得分:1)
您正在听一个小孩/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);
}
答案 1 :(得分:0)
DatabaseReference database = FirebaseDatabase.getInstance().getReference();
DatabaseReference pwd = database.child("29-06-2018").child("BBBB");
pwd.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String a = dataSnapshot.child("jobno").getValue(String.class);
String b = dataSnapshot.child("address").getValue(String.class);
String c = dataSnapshot.child("model").getValue(String.class);
}
@Override
public void onCancelled(DatabaseError error) {
}
});