一旦我添加了Where方法,我就会收到此错误,但它在没有Where子句的情况下工作。在集合中,每个文档都有名为" status"的布尔值。
db.firestore().collection('jobs').where("status","==",true).orderBy("createDate").limit(10).get().then(querySnapshot =>{
})
})
感谢所有帮助。谢谢!
答案 0 :(得分:1)
由于您要查询两个字段(status
和createDate
),因此需要在这两个字段上添加综合索引。单个字段的索引会自动创建,但只有在您要求时才会创建复合索引。
错误消息应包含直接指向控制台的链接以完成该任务。如果情况并非如此,您可以创建here。
答案 1 :(得分:0)
对两个以上字段的Firestore查询需要在该两个字段上提供综合索引。
所以你必须创建复合索引status
和createDate
。当你没有索引时,你会得到如下的错误。
ERROR Error: The query requires an index. You can create it here: https://console.firebase.google.com/project/admin-e8a7b/database/firestore/indexes?create_index=EgR0ZW1wGgcKA3VpZBACGg0KCXN0YXJ0ZWRBdBADGgwKCF9fbmFtZV9fEAM
at new FirestoreError (vendor.bundle.js:19925)
因此,当您单击此链接时,将自动创建错误索引。
您也可以从firebase console
手动创建索引要将等于运算符(==)与范围比较(<,< =,>或> =)合并,请确保创建自定义索引。