Angular 中的 Firebase 多个 where 查询

问题描述 投票:0回答:1

我想使用 Angular 中的 where 查询来过滤来自 Firebase 的数据。但过滤器仅在我输入两个值时才起作用。但是我希望过滤器在只有一个值时也能工作,我该怎么做呢?

getRequest(id, data) {
    console.log(data);
    return this.firestore
      .collection('customers')
      .doc(id)
      .collection('requests', (x) =>
        x
          .where('trace_id', '==', data.traceID)
          .where('status', '==', +data.status)
      )
      .snapshotChanges();
  }
angular firebase google-cloud-firestore angularfire
1个回答
0
投票

集合方法的回调是一个普通的方法,所以你可以使用普通的 JavaScript 构造来得到你想要的。例如:

.collection('requests', (x) => {
  let result = x;
  if (data.traceID) result = result.where('trace_id', '==', data.traceID);
  if (data.status)  result = result.where('status', '==', +data.status);
  return result;
)
© www.soinside.com 2019 - 2024. All rights reserved.