我正在查看针对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集合做了一些事情,它就失败了。
答案 0 :(得分:2)
提示任何需要它的人,如果您忘记创建索引并且遇到上述错误,请运行'adb logcat'然后尝试再次加载数据 - 它通常会为您提供一个URL链接请为您创建所需的索引。
答案 1 :(得分:0)
我遇到了同样的问题,Frank van Puffelen的评论为我解决了。您需要为“部门”和“ bb_last_name”创建一个复合索引。由于“部门”使用相等运算符,因此索引中的升序还是降序都没有关系。