首页 > 解决方案 > 如何在firebase数据库android java中使用where查询

问题描述

我想更新 classection=Six:B 的班级的所有学生 请指导我可以使用哪个查询 有很多学生我想同时更新六个班级的所有学生。

在此处输入图像描述

标签: javaandroidfirebasefirebase-realtime-database

解决方案


我想更新 classection=Six:B 的所有学生

为此,您需要使用查询来根据“类”属性过滤学生。要同时执行更新,例如,将值从“Six:B”更改为“Six:C”,请参阅使用以下代码行:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference studentsRef = rootRef.child("Students");
Query classSectionQuery = studentsRef.orderByChild("classection").equalTo("Six:B");
classSectionQuery.get().addOnCompleteListener(new OnCompleteListener<DataSnapshot>() {
    @Override
    public void onComplete(@NonNull Task<DataSnapshot> task) {
        if (task.isSuccessful()) {
            for (DataSnapshot ds : task.getResult().getChildren()) {
                ds.child("classection").getRef().setValue("Six:C");
            }
        } else {
            Log.d(TAG, task.getException().getMessage()); //Don't ignore potential errors!
        }
    }
});

此代码的结果将是所有学生的更新“WHERE”类别等于“Six:B”。


推荐阅读