如果我使用first(),是否需要退订Firestore快照侦听器

时间:2019-11-06 02:16:52

标签: typescript google-cloud-firestore angularfire2

如果我按照下面的示例使用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
    };
  });
}

0 个答案:

没有答案