Я использую метод, описанный в
Firestore, как получить значение коллекции из другого идентификатора документа коллекции, на который имеется ссылка
но мне нужно объединить два справочных документа за один раз, но в других коллекциях, таких как:
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.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. Пожалуйста, помогите мне. Спасибо