Firestore, как объединить более 2 ссылок на коллекцию одновременно - PullRequest
0 голосов
/ 11 января 2019

Я использую метод, описанный в

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. Пожалуйста, помогите мне. Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...