如何使用带有其他“ orderBy”的valid_until字段在firestore中查询数据

时间:2020-07-08 14:39:23

标签: reactjs firebase google-cloud-firestore

我正在构建一个像市场这样的应用程序。我数据库中的每个项目都有一个valid_until属性,因此我不希望在查询中返回无效(如过期)的项目。但是,根据firestore的文档,我的第一个orderBy必须与我的范围比较相同。

所以当我这样做时 ref,collection('products').orderBy('valid_until', 'desc').where('valid_until', '>=', Date.now()).limit(20),我得到了正确的结果,但是例如,我无法按价格订购。

我也尝试做 ref .collection("products").orderBy("valid_until", "desc").endBefore(moment().subtract(7, "days").valueOf()).limit(20),它也可以给我正确的结果,但是在排序方面存在相同的问题。每个项目的有效期为7天,因此减去瞬间。

我还没有尝试过的另一种选择是安排一个具有Firebase功能的任务,以每天删除过期的产品,因此我不必担心查询无效的产品。

有人有什么想法吗?我想我可能在这里错过了一些东西。我想在这些产品中建立一些查询,例如orderBy价格,valid_until,折扣等等。因此,我觉得这条“ where”语句阻止了所有其他查询的发生。

0 个答案:

没有答案