添加复合索引后的Firestore查询仍然不返回任何结果



我已经创建了react应用程序,我正在使用firebase firestore。所以在使用之初,我没有遇到任何问题,直到我发现我需要创建一个这样的查询:

db.collection('schedule')
.where('working_day', '>=', new Date())
.where('master', '==', masterId)
.orderBy('working_day', 'desc')
.get();

我有一个名为schedule的集合,这个schedule集合有文档列表。每个文档都具有以下结构:

working_day: timestamp;
start_hour: number;
end_hour: number;
master: string;

当我调用这个查询时,我没有看到任何结果(请求已经消失,但根本没有结果(。有人建议我添加复合索引,它必须解决这个问题我使用firestore索引标签完成了这项工作,现在我有了这个索引:

Collection ID   Fields indexed                          Query scope     Status
schedule    working_day Descending master Descending    Collection      Enabled

它已经成功应用了,但我的请求仍然没有任何结果。我也知道firestore可能会注意到我需要应用这个索引并为我提供链接,但我没有看到这个链接。我应该在哪里找到这个?或者我做错了什么?

打破我的头2天,没有发现为什么我有这个问题

看起来working.day作为时间戳存储在您的firestore数据库中,但您的查询条件正在与可能导致问题的javascript日期对象进行比较。尝试用firebase时间戳替换日期对象,如下代码所示。

db.collection('schedule')
.where('working_day', '>=',  new firebase.firestore.Timestamp.now())
.where('master', '==', masterId)
.orderBy('working_day', 'desc')
.get();

最新更新