У меня есть коллекция в firestore, называемая «шаги», и внутри коллекции шагов, у меня есть много документов и вложенных коллекций, называемых «подшагами» в каждом документе шагов. Мне нужно создать массив, в котором будут все шаги и подшагы, чтобы я мог использовать этот компонент , поэтому массив должен выглядеть следующим образом
let steps = [
{
step: 1,
id: '1'
substeps: [
{
step: '1.1'
substeps: [
{
step: '1.1.2'
}
]
}
]
}
]
Теперь я хочу создать рекурсивные функции, которые будут извлекать все подшаги, если они существуют
Я пытался создать функцию, которая должна извлекать все вложенные коллекции, но я не знаю, как ее завершить, поэтому ниже приведен пример того, что я пробовал, но обратите внимание, что функция не завершена, и это только первые шаги.
Вот документация
fetchAllStepsDeep (request) {
//this.steps = array of objects with step data
let result = []
let requestLocal = this.$firebaseFirestore.collection('steps_for_classes')
for (let i in this.steps) {
result.push(this.steps[i])
requestLocal.doc(this.steps[i].id).get().then((doc) => {
if (doc.exists) {
console.log('Document data:', doc.data())
} else {
// doc.data() will be undefined in this case
console.log('No such document!')
}
}).catch((error) => {
console.log('Error getting document:', error)
})
}
}
Может ли кто-нибудь помочь мне получить все вложенные коллекции внутри коллекции и создать один большой массив с другими дочерними массивами объектов? Я использую Vue Framework, так что, возможно, это может быть полезно
Спасибо