根据复合查询的文档我可以进行这样的查询
query(
collection(db, 'users', user.value.id, 'leaderboard'),
and(
where('series.seriesStartDate', '<=', new Date()),
where('score', '>', 0),
),
limit(5)
)
但是当我在应用程序中进行查询时,它不起作用并且出现错误
FirebaseError:查询无效。所有具有不等式(<, <=, !=, not-in, > 或 >=)的 where 过滤器必须位于同一字段上。但是你在“series.seriesStartDate”和“score”上有不等式过滤器
我做错了什么?
您的屏幕截图显示您为嵌套在以“CAU”开头的用户文档 ID 下的一个特定排行榜子集合创建了索引。 该索引不适用于任何其他集合或子集合的查询,仅适用于该用户的排行榜子集合。
如果您想执行此查询,您必须:
要么您必须将所有文档从所有排行榜子集合移动到新的顶级集合,同时提供用户 ID 作为过滤字段。