我正在开发一个有角度的应用程序+ Firebase。问题是我有一个与区域和索引的“关系”,我想要做的就是检索索引数据,但是每个区域文档都有一个索引集合,并且在那些索引中我有对该索引的引用。
我有一项服务,可以通过getAllIndiceAreaId
方法为我带来数据。
getAllIndiceFindAreaId(idArea: string, listIndice: Array<indice>): Observable<indice[]> {
return Observable.create(observable => {
this.afs.collection<indice>("area").doc(idArea).collection("indice").snapshotChanges().pipe(map(actions => actions.map(documentoIndice => {
const data = documentoIndice.payload.doc.data() as area_indice
const id = documentoIndice.payload.doc.id
return { id, ...data }
}))).subscribe(listaIndices => {
listaIndices.map(indice => {
indice.indiceRef.get().then(indiceData => {
let indice = (indiceData.data() as indice)
indice.id = indiceData.id
listIndice.push(indice)
})
})
observable.next(this.listaIndice)
})
})
}
问题是我想浏览组件中的该列表,但是在控制台中我打印未定义,但是我使用管道异步在html中的另一个组件中对其进行了完全测试,并绘制了结果。我认为恢复数据的方式不是最佳方法,该怎么办?