1 回答
TA贡献1796条经验 获得超4个赞
您正在构建这样的查询:
Query query = myRef.child(id).child("class_info").orderByChild("subject").equalTo("Science");
这表示要通过id(我认为您的 JSON 中未显示)找到一个孩子,然后找到一个孩子class_info,然后在其下找到subject每个孩子的属性并对其进行过滤。所以路径是$id/class_info/*/subject,其中*是你要过滤返回的子节点。
但你实际拥有的是/Classes/*/class_info/subject. 所以你有一个节点Classes,你想返回其class_info/subject具有给定值的子节点。在代码中这是:
DatabaseReference classesRef = FirebaseDatabase.getInstance().getReference("Classes");
Query query = classesRef.orderByChild("class_info/subject").equalTo("Science");
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
list = new ArrayList<>();
for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {
Class_model new_class = dataSnapshot1.getValue(Class_model.class);
...
添加回答
举报