В вашей текущей структуре вы можете запросить ее следующим образом:
var JohnyScore = []
db.collection("Student").get().then(function(doc) {
doc.collection("Grade").get().then(function(snapshot) {
snapshot.forEach(function(doc2) {
doc2.collection("Score").where("id", "==", "Johny").get().then(function(snapshot2) {
JohnyScore.push(snapshot2.data());
});
});
});
});
Однако это очень неэффективно, так как вы можете видеть, что вы выполняете 2 чтения + 1 чтение на оценку, если вы желая изменить свою структуру данных, было бы намного проще иметь ее так:
Collection: Student
Document
id: Johny
Subcollection: Grade
Document
id: Math
score: 10
Document
id: History
score: 8
И тогда вы могли бы запросить ее с помощью:
var JohnyScore = []
db.collection("Student").where("id", "==", "Johny").get().then(function(doc) {
doc.collection("Grade").get().then(function(snapshot) {
snapshot.forEach(function(score) {
JohnyScore.push(score.data());
});
});
});
Что означало бы, что вы выполняете только 2 чтения.
Надеюсь, это поможет.