Firebase Firestore:orderBy结合哪里导致错误“操作被拒绝”

时间:2017-12-11 01:15:03

标签: javascript firebase google-cloud-firestore

我正在查看针对orderBy的Firebase Cloud Firestore documentation。当我尝试执行此

var facultyQuery = facultyRef.where("department", "==", "Core Teacher").orderBy('bb_last_name', 'desc');

我收到错误:

Error: Firestore: Operation was rejected because the system is not in a state required for the operation`s execution. (firestore/failed-precondition).

这两种简单的案例都可以正常使用:

var facultyQuery = facultyRef.orderBy('bb_last_name', 'asc');
var facultyQuery = facultyRef.where("department", "==", "Core Teacher");

但是当我将where和orderBy组合在一起时,我之前使用其他Firestore集合做了一些事情,它就失败了。

以下是一个示例记录: enter image description here

2 个答案:

答案 0 :(得分:2)

提示任何需要它的人,如果您忘记创建索引并且遇到上述错误,请运行'adb logcat'然后尝试再次加载数据 - 它通常会为您提供一个URL链接请为您创建所需的索引。

答案 1 :(得分:0)

我遇到了同样的问题,Frank van Puffelen的评论为我解决了。您需要为“部门”和“ bb_last_name”创建一个复合索引。由于“部门”使用相等运算符,因此索引中的升序还是降序都没有关系。