如果我按照下面的示例使用first()查询,则仅返回第一组数据并忽略任何更新。
我还会继续向客户端获取更新并收取费用吗?
我应该使用get()而不是snapshotChanges或onSnapshot还是使用first()使其与get()相同?
getCompanies(searchText: string): Observable<Company[]> {
return this.db.collection('companies', ref => ref
.orderBy('name').startAt(searchText).endAt(searchText + '\uf8ff')
)
.snapshotChanges()
.pipe(
map(snaps => convertSnaps<Company>(snaps)),
first()
);
}
export function convertSnaps<T>(snaps) {
return <T[]>snaps.map(snap => {
const data = convertDocTimeStampsToDate(snap.payload.doc.data());
return {
id: snap.payload.doc.id,
...data
};
});
}