例如,我对我的书籍清单有动态过滤器,可以在其中设置特定的颜色,作者和类别。该过滤器可以一次设置多种颜色,也可以设置多种类别。
Book > Red, Blue > Adventure, Detective.
如何有条件地添加“ where”?
firebase .firestore() .collection("book") .where("category", "==", ) .where("color", "==", ) .where("author", "==", ) .orderBy("date") .get() .then(querySnapshot => {...
如您在API文档中所见,collection()方法返回一个CollectionReference。CollectionReference扩展了Query。Query.where()和Query.orderBy()也返回Query对象。因此,您可以像这样重写代码:
var query = firebase.firestore().collection("book") query = query.where(...) query = query.where(...) query = query.where(...) query = query.orderBy(...) query.get().then(...)
现在,您可以输入条件来确定要在每个阶段应用哪些过滤器。只需query为每个新添加的过滤器重新分配。
query
if (some_condition) { query = query.where(...) }