Google cloud firestore 使用angularfire2获取单个文档的最简单方法
我正试图有一个基本的表格,以便我可以更新数据。 我可以查询一个完整的集合(也可以选择在客户端过滤我需要的数据,如果它还不适合我的话) 我知道id后可以查询单个单据。 但我希望使用业务条件查询集合,并能够将其添加到我的视图中(当然,还希望在通过表单更新数据时获得更新数据的方法) 事实上,我的问题似乎非常接近 但是:Google cloud firestore 使用angularfire2获取单个文档的最简单方法,google-cloud-firestore,angularfire2,Google Cloud Firestore,Angularfire2,我正试图有一个基本的表格,以便我可以更新数据。 我可以查询一个完整的集合(也可以选择在客户端过滤我需要的数据,如果它还不适合我的话) 我知道id后可以查询单个单据。 但我希望使用业务条件查询集合,并能够将其添加到我的视图中(当然,还希望在通过表单更新数据时获得更新数据的方法) 事实上,我的问题似乎非常接近 但是: 在我看来,获取所有数据并进行过滤是一个糟糕的解决方案 我试过了,但我不确定是否理解这个示例中所有付款和付款的含义(类型)(我想这是一个商务类,如果是这样,好的): getPaymen
- 在我看来,获取所有数据并进行过滤是一个糟糕的解决方案
- 我试过了,但我不确定是否理解这个示例中所有付款和付款的含义(类型)(我想这是一个商务类,如果是这样,好的):
getPaymentByBookingId(id: string): Observable<Payment> { return this.afs.collection<Payment>('payments') .valueChanges() .pipe( map(allPayments=>allPayments.find(payment=>payment.bookingId === id)) ); }
getPaymentByBookingId(id:string):可观察{ 返回此.afs.收款(“付款”) .valueChanges() .烟斗( 映射(allPayments=>allPayments.find(payment=>payment.bookingId==id)) ); }
Cannot read property '<my_attribute' of undefined
无法读取属性',正如您所建议的,在客户端进行筛选不是实现这一点的理想方法。您需要在bookingId
上查询集合,然后limit()
这仍将返回一个包含一个项目的数组(limit(1)
),但您可以使用flatMap()
将结果展平,以获得单个付款:
getPaymentByBookingId(id: string): Observable<Payment> {
return this.afs
.collection<Payment>('payments', ref => ref.where('bookingId', '==', id).limit(1))
.valueChanges()
.pipe(
flatMap(payments => payments)
);
}
getPaymentByBookingId(id:string):可观察{
把这个还给我
.collection('payments',ref=>ref.where('bookingId','=',id.)。限额(1))
.valueChanges()
.烟斗(
flatMap(付款=>付款)
);
}
正如您所建议的,在客户端进行过滤并不是实现这一点的理想方法。您需要在bookingId
上查询集合,然后limit()
这仍将返回一个包含一个项目的数组(limit(1)
),但您可以使用flatMap()
将结果展平,以获得单个付款:
getPaymentByBookingId(id: string): Observable<Payment> {
return this.afs
.collection<Payment>('payments', ref => ref.where('bookingId', '==', id).limit(1))
.valueChanges()
.pipe(
flatMap(payments => payments)
);
}
getPaymentByBookingId(id:string):可观察{
把这个还给我
.collection('payments',ref=>ref.where('bookingId','=',id.)。限额(1))
.valueChanges()
.烟斗(
flatMap(付款=>付款)
);
}
这对我很有用。谢谢下一步我将找到如何获得该组件的异步版本,因为我在加载组件时获得firestore的值,在重新加载之前不会显示更改。这对我很有用。谢谢下一步将让我找到如何获取该组件的异步版本,因为我在加载组件时获取firestore的值,在重新加载之前不会显示更改。