Con*_*ejo 8 javascript firebase google-cloud-firestore
我试图弄清楚为什么我会收到此错误
FirebaseError:向 Query.startAt() 提供的参数太多。参数的数量必须小于或等于 Query.orderBy() 子句的数量
用这个代码:
const query = firebase
.getDatabase()
.collection("users")
.where("premium", "==", true) // get premium users
.where("totalPosts", ">", 0); // that have posted some music
...
return query
.startAt(0)
.limit(1)
.get()
.then((snapshot) => {
...
);
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我正在尝试吸引发布了一些音乐的高级用户。我使用的是 where 和 startAt 子句,而不是 orderBy。
我究竟做错了什么?
谢谢!
仔细阅读错误信息:
参数的数量必须小于或等于 Query.orderBy() 子句的数量
您的代码根本不显示任何 orderBy 子句,因此本例中的数字为 0。但是您向 提供了 1 个参数startAt()。具体来说,您实际上应该提供一个 orderBy 子句。它必须与您的范围查询的字段匹配:
const query = firebase
.getDatabase()
.collection("users")
.where("premium", "==", true) // get premium users
.where("totalPosts", ">", 0) // that have posted some music
.orderBy("totalPosts")
Run Code Online (Sandbox Code Playgroud)
然后,您的分页应该重复完全相同的查询,只是这次使用 startAt 告诉它从哪里获取:
return query.startAt(0);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6370 次 |
| 最近记录: |