Данные JSON показывают доступные дисциплины в различных колледжах :
{
"AvailableDisciplines": {
"4JN": {
"Disciplines": {
"CV": {
"disciplineCode": "CV",
"disciplineName": "Civil Engineering",
"siNo": "1"
},
"EC": {
"disciplineCode": "EC",
"disciplineName": "Electronics and Communication Engineering",
"siNo": "2"
},
"EE": {
"disciplineCode": "EE",
"disciplineName": "Electronics and Electricals Engineering",
"siNo": "3"
}
}
},
"4MT": {
"Disciplines": {
"EE": {
"disciplineCode": "EE",
"disciplineName": "Electronics and Electricals Engineering",
"siNo": "1"
},
"CS": {
"disciplineCode": "CS",
"disciplineName": "Computer Science Engineering",
"siNo": "2"
},
"IS": {
"disciplineCode": "IS",
"disciplineName": "Information Science Engineering",
"siNo": "3"
}
}
},
"1KT": {
"Disciplines": {
"TE": {
"disciplineCode": "TE",
"disciplineName": "Telecommunication Engineering",
"siNo": "1"
},
"CS": {
"disciplineCode": "CS",
"disciplineName": "Computer Science Engineering",
"siNo": "2"
},
"IS": {
"disciplineCode": "IS",
"disciplineName": "Information Science Engineering",
"siNo": "3"
}
}
}
}
}
, где 4JN, 4MT и 1KT Код колледжа .Если я захочу опросить все колледжи, предлагающие дисциплину гражданского строительства, мне придется написать подробный запрос на узле AvailableDisciplines.И код запроса:
FirebaseDatabase.getInstance().getReference()
.child("Trial").child("AvailableDisciplines")
.orderByChild("Disciplines/EE").startAt("")
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
Log.v("log", "datasnapshot: " + String.valueOf(dataSnapshot));
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
}));
Я могу получить данные в соответствии с моими ожиданиями.Но я не понимаю, как написать .indexOn
правила для этого случая.Не могли бы вы помочь мне, пожалуйста?