正如标题所说,我希望通过完全基于Firebase Firestore的电子商务应用程序实现过滤功能。
过滤器可能过于复杂 - 带有
的产品列表(例如手机)- price range between 10k - 20k
- Brands among Samsung, Motorola and Apple
- OS should be Marshmallow, Nougat or Oreo
- RAM should be 3GB, 4GB or 6GB
由于无法直接进行复杂查询,因此很明显我需要重新构建数据库。请帮助我重组部分,或者如果您有任何其他建议,我很乐意听到。
截至目前我已经完成了
FirebaseFirestore.getInstance()
.collection("products")
.whereGreaterThanOrEqualTo("price", 10000)
.whereLessThanOrEqualTo("price", 20000)
.whereEqualTo("brand", "Samsung")
.whereEqualTo("brand", "Motorola")
.whereEqualTo("brand", "Apple")
.whereEqualTo("OS", "Marshmallow")
.whereEqualTo("OS", "Nougat")
.whereEqualTo("OS", "Oreo")
.whereGreaterThanOrEqualTo("RAM", 3)
显然它不起作用,因为Firestore支持逻辑AND ,它既不支持逻辑OR 也不支持两者。那么有什么可以重构的数据建模方法来实现呢?