Если я выполняю запросы, как в примере ниже, с помощью first (), чтобы вернуть только первый набор данных и игнорировать любые обновления.
Буду ли я по-прежнему получать обновления для клиента и платить за чтение?
Должен ли я использовать get () вместо snapshotChanges или onSnapshot или же использование first () сделает его таким жекак получить ()?
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
};
});
}