【发布时间】:2018-06-11 18:37:51
【问题描述】:
我有这个功能可以将文档添加到 Firestore 集合中。
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 的 observable。
但是我不确定是否应该在 ...set(listing).then() 中返回 listingId,因为当列表不会被“设置”或发生任何错误时,我不会返回 listingId,而是返回其他内容。
我已经尝试过看看情况如何:
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);
})
);
}
问题是老实说我不确定如何将 promise 与 observable 一起使用。
第一种方法返回字符串的 Observable
秒方法返回 void 的 Observable
【问题讨论】:
标签: angular rxjs angularfire2