У меня есть эта функция для добавления документа в коллекцию пожарных.
addListing(listing: Listing) {
return this.auth.user$.pipe(
first(),
map(user => user.uid),
map(uid => {
const listingId = this.afs.createId();
this.listingsCollection.doc(listingId).set(listing);
return listingId;
})
);
}
Эта функция должна возвращать наблюдаемую величину listingId
, как это происходит сейчас.
Однако я 'Я не уверен, должен ли я возвращать listingId
в ...set(listing).then()
, потому что, когда список не будет «установлен» или возникнет какая-либо ошибка, я не верну listingId
, но что-то еще.
I 'мы уже пытались проверить, как это происходит:
addListing3(listing: Listing) {
return this.auth.user$.pipe(
first(),
map(user => user.uid),
map(uid => {
const listingId = this.afs.createId();
this.listingsCollection
.doc(listingId)
.set(listing)
.then(() => {
return listingId;
})
.catch(error => console.error);
})
);
}
Проблема в том, чтобы быть честным, я не уверен, как использовать обещание с наблюдаемым.
Первый подход возвращает наблюдаемое из строки
Секундный подход возвращает Observable of void