我使用
中描述的方法Firestore how to get the collection value from another collection document id is referenced
但是我必须一次合并两个参考文档,但要合并在其他集合中,例如:
cash.models.ts:
import { DocumentReference } from "@angular/fire/firestore";
export class Cash { // .collection('contactors')
id: string;
person: DocumentReference<Workers>;
contactor: DocumentReference<Contactors>;
nr_dokumentu: string;
kwota: number;
data: string;
}
export class Workers {
id: string;
imie: string;
nazwisko: string;
}
export class Contactors {
id: string;
.
.
.
kontakttelefon: string;
}
首先,我将合并的人员引用添加到Cash,并且效果很好
cash.service.ts:
...
getCash(){
return this.cashCollection.snapshotChanges().pipe(map(changes => {
return changes.map(a => {
let data = a.payload.doc.data() as Cash;
const workerId = data.osoba.path;
const contactorId = data.contactor.path
delete data.osoba
return this.firestore.doc(workerId).valueChanges().pipe(map((collWorkerData: Workers) => {
return Object.assign({
person: {
id: a.payload.doc.data().person.id,
imie: collWorkerData.imie,
nazwisko: collWorkerData.nazwisko
},
...data });
}))
})
})).pipe(mergeMap(cash => combineLatest(cash)))
}
...
但是现在,我必须将collection('contactor')
组合到collection('cash')
中。我不知道需要在哪里实现代码以及如何一起返回所有内容,因为我已经使用过return
语句。
这是我使用Firestore的第一个应用程序。请帮我。谢谢