【发布时间】:2021-05-02 05:59:33
【问题描述】:
以下是我想要对 Firestore 数据库执行的操作:
-
从“posts”集合中查询,该集合包含以下字段:“userid”、“time”和“listid”。
-
查询最近4个包含目标userid变量且'listid'值不等于目标listid变量的文档。
这是我的初始查询,它提出了错误消息:'不等式过滤器属性和第一排序顺序必须相同'
return db.collection('posts').where('userid','==',targetuserid)
.where('listid','!=',targetlistid)
.orderBy("time","desc")
limit(4).get()
这是我修改后的查询,它不再触发错误消息。
return db.collection('posts').where('userid','==',targetuserid)
.where('listid','!=',targetlistid)
.orderBy("listid").orderBy("time","desc")
limit(4).get()
但是,修改后的查询存在以下问题:查询不是返回实际的最新文档,而是首先根据随机生成的“listid”字段进行排序,因此返回很久以前生成的随机文档。
Firestore 查询方法中是否有一种解决方法可以帮助我做我想做的事情,还是在 Firestore 中还不可能,我必须开始考虑替代方案?
谢谢!
【问题讨论】:
标签: node.js firebase google-cloud-firestore