如何从firebase数据库中的侧键中的键中检索值?

时间:2019-10-11 14:49:29

标签: android firebase-realtime-database

我正在使用模型类在Firebase项目中存储数据。请帮助我如何从密钥内部的密钥中检索数据。

Check screenshot

检查数据树的屏幕截图。

1 个答案:

答案 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());
        }
    });
}
}