我想使用 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();
}
集合方法的回调是一个普通的方法,所以你可以使用普通的 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;
)