我正在使用模型类在Firebase项目中存储数据。请帮助我如何从密钥内部的密钥中检索数据。
检查数据树的屏幕截图。
答案 0 :(得分:0)
我不知道您为什么需要这样做,但这就是我本应采取的方式。基本上,我向我的FirebaseDatabase对象添加一个valueEventListener,然后获得键,在这种情况下,该键表示第一级。
添加另一个FirebaseDatabase引用,并将第一个引用中的键作为子级,这将允许您访问第二个级别的键。从那里可以继续进行访问,就像在普通值事件侦听器上一样访问数据。
基本上,如果您从classesDatabase引用的valueEventListener调用getData函数并传递数据快照,则可以访问第二级的数据。
classesDatabase = FirebaseDatabase.getInstance().getReference().child("classes");
private void getData(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String key1 = ds.getKey();
DatabaseReference dbReference = classesDatabase.child(key1);
dbReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot2) {
for (DataSnapshot ds2 : dataSnapshot2.getChildren()) {
String key2 = ds2.getKey();
Classes classOne = ds2.child(key2).getValue(Classes.class);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.i(getClass().getName().toString(), ": " + databaseError.getMessage());
}
});
}
}