例如,我的图书列表有动态过滤器,我可以在其中设置特定的颜色、作者和类别。
该过滤器可以一次设置多种颜色和多个类别。
Book > Red, Blue > Adventure, Detective.
如何有条件地添加“where”?
firebase
.firestore()
.collection("book")
.where("category", "==", )
.where("color", "==", )
.where("author", "==", )
.orderBy("date")
.get()
.then(querySnapshot => {...
正如您在 API 文档中所看到的,收藏() https://cloud.google.com/nodejs/docs/reference/firestore/0.10.x/Firestore#collection方法返回一个收藏参考 https://cloud.google.com/nodejs/docs/reference/firestore/0.10.x/CollectionReference。集合参考扩展Query https://cloud.google.com/nodejs/docs/reference/firestore/0.10.x/Query,并且 Query 对象是不可变的。查询.where() https://cloud.google.com/nodejs/docs/reference/firestore/0.10.x/Query#where and Query.orderBy() https://cloud.google.com/nodejs/docs/reference/firestore/0.10.x/Query#orderBy返回新的 Query 对象,该对象在原始 Query(保持未修改)之上添加操作。您必须编写代码来记住这些新的查询对象,以便您可以继续使用它们进行链接调用。因此,您可以像这样重写代码:
var query = firebase.firestore().collection("book")
query = query.where(...)
query = query.where(...)
query = query.where(...)
query = query.orderBy(...)
query.get().then(...)
现在,您可以输入条件来确定要在每个阶段应用哪些过滤器。只需重新分配query
每个新添加的过滤器。
if (some_condition) {
query = query.where(...)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)