В моей базе данных есть коллекция разделов, каждый из которых содержит вложенную коллекцию подразделов.
Вот массив, который мне нужно создать:
[
{
"sectiontitle": "first section",
"sectiontype": "1",
"__id__": "6jwwukHmOs1743yC13vH",
"subsections": [
{
"desc": "blah blah blah",
"__id__": "KTq4MJTEMbDfR33RoX9J"
},
{
"desc": "blah blah blah",
"__id__": "ASFSADFSAFSADFSADFFS"
}
]
},
{
"sectiontitle": "second section",
"sectiontype": "1",
"__id__": "5jwwDHEDOs1743yC13vG",
"subsections": [
{
"desc": "blah blah blah",
"__id__": "DFG4MJTEMbDfR33DDDDD"
},
{
"desc": "blah blah blah",
"__id__": "ASDFGHFSAFSADFSHJFRD"
}
]
}
]
Мой код:
// get sections
firebase.firestore().collection("sections").get().then((sections) => {
var myarray = [];
var i = 0;
sections.forEach((section) => {
var sectiondata = section.data();
sectiondata.__id__ = section.id
sectiondata.subsections = [];
myarray.push(sectiondata);
//get subsections
firebase.firestore().collection("sections").doc(sectiondata.__id__).collection("subsections").get().then((subsections) => {
subsections.forEach((subsection) => {
var subsectiondata = subsection.data();
subsectiondata.__id__ = subsection.id;
myarray.push('sections.' + i + '.subsections', subsectiondata); // problem is i index is not correct
});
});
i++;
});
});
Эта проблема заключается в том, что индекс i
неверен, поскольку чтение разделов уже завершено и циклически проходит через foreach ко времени начала чтения подразделов.Я не знаком с обещаниями Javascript, поэтому я надеялся, что кто-нибудь может мне помочь с решением этой проблемы?
По существу, для каждого раздела добавьте подразделы.
Спасибо.