如何在Android Studio中检索Firebase数据库中1个子项下的数据列表
存储在firebase中的数据:如何在Android Studio中检索Firebase数据库中1个子项下的数据列表,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,存储在firebase中的数据: 29-06-2018(date) -AAAA -25142(jobno) -Park station(address) -BMW(model) -BBBB -85142(jobno) -Base station(address) -Ford(model) 这里我要所有的孩子都在BBBB以下。我不想通过A
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);
}
感谢您的解决方案和快速响应。只是代码中的一个小改动,而不是“ds”,而是“dataSnapshot”。
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) {
}
});