关于javascript:Firestore OrderBy与何处发生冲突

Firestore OrderBy and Where conflict

我可以从Firestore数据库中获取简单的数据,但是我想使用一些排序和条件条件对数据进行分页。 因此,我尝试使用一些基本过滤器来获取数据,但是遇到错误,在文档https://firebase.google.com/docs/firestore/query-data/order-limit-data中描述了仅针对范围<,<= ,>,> =应该使用orderBy以及同一字段的where,但是我只需要完全匹配(==)

节点v8.12.0,Express,Firebase功能

1
2
3
4
5
6
7
8
 model.collection
        .orderBy("dateCreated", 'desc')//timeStamp
        .where('tenantId', '==', 'f8XnOVUKob5jZ29oM9u9')  
        .limit(10)
        .get()
        .then((snapshot) => {
          res.send(snapshot);
        }).catch((error) => res.send(error));

下一个错误

1
2
3
4
{
   "code":"failed-precondition",
   "name":"FirebaseError"
}

我只有在分别使用where或orderBy时才有结果,但不能同时使用


使用复合查询时,您需要为查询创建索引。 您的查询失败,因为您没有为其创建索引

1
2
dateCreated
tenantId

您的索引标签应具有类似于以下内容的内容,并带有索引字段。

index