Я не эксперт по созданию приложения, но мне нужно найти документ коллекции по идентификатору другого документа в другой коллекции.
Мне нужно заполнить объект (Арендатор), у которого есть другой объект(RealEstate) внутри него.
Итак, первое, что я делаю, это использование snapshotChanges и map для получения Контракта.Этот контракт имеет идентификатор как свойство, и с этим идентификатором я хочу сделать новую консультацию к базе данных, чтобы получить RealEstate, ссылающуюся на этот идентификатор, и с этим заполнить данные Contract.RealEstate ...
Пожалуйста, смотрите код выше:
public contracts: Observable<Contract[]>;
// I tried to use this property but it does not work...
public currentRealEstate: RealEstate = null;
...
this.contracts = this.afDb.collection<Contract>(
'Contract',
ref => ref.where('ownerId', '==', this.fb.user.uid).where("active", "==", true)
).snapshotChanges().pipe(
map(actions => actions.map(a => {
const data = a.payload.doc.data() as Contract;
const id = a.payload.doc.id;
data.id = id;
// This is where I'm doing wrong...
this.afDb.doc<RealEstate>('RealEstate/' + data.realEstateId).valueChanges().
subscribe((data) => {
// attr the RealEstate data to the property...
this.currentRealEstate = data;
console.log(this.currentRealEstate); // return is ok on the log...
});
// attr the property to the Contract.realEstate...
data.realEstate = this.currentRealEstate;
return { id, ...data };
}))
Что мне нужно сделать?Спасибо, и мне жаль, если я сказал что-то не так.