【发布时间】:2023-03-11 11:18:02
【问题描述】:
我正在尝试为“上周/月/年的热门帖子”创建查询。我认为这很简单,但我遇到了 Firestore 查询规则的限制。
这是我最想运行的查询:
db
.collection(MY_COLLECTION)
.where('created', '>', new Date(fromDate))
.orderBy('score', 'desc')
这给了我这个错误:
FirebaseError:查询无效。你有一个 where 过滤器 'created' 字段上的不等式( 或 >=),因此您还必须 使用“created”作为您的第一个 Query.orderBy(),但您的第一个 Query.orderBy() 改为在字段 'score' 上。
对于这些类型的查询是否有已知的策略或解决方法?
【问题讨论】:
-
目前我唯一的想法是有一个每日 cron 作业,在所有帖子上设置字段
isWithinWeek、isWithinMonth和isWithinYear,以便我可以将其用作相等过滤器。有更好的选择吗?
标签: javascript firebase google-cloud-firestore