【问题标题】:How to filter by date on firestore如何在firestore上按日期过滤
【发布时间】:2021-08-31 12:39:58
【问题描述】:

我正在制作一个用户可以按日期过滤任务的页面,在我的文档中,我有一些任务的时间是时间戳上的 00:00:00,在我的变量中我设置了这样的时间,但它不是t 返回这些文件,这是我目前的代码:

date1 = new Date(), date2 = new Date();
date1.setHours(0, 0, 0), date2.setHours(23, 59, 59);

这是我的疑问:

this.db.collection<any>(`tasks`, ref => ref.orderBy('date', 'asc').where('date', '>=', date1).where('date', '<=', date2)).snapshotChanges().pipe(take(1), map(results => {
      return results.map(r => {
        const data = r.payload.doc.data();
        const id = r.payload.doc.id;
        return { data, id };
      });
    }

【问题讨论】:

  • 1) 您能否编辑您的问题以显示 Firebase 控制台的屏幕截图,其中包含您希望在此查询中返回的 tasks 集合中的文档? 2) 我建议只使用 JavaScript SDK 来重现问题,所以不要使用 AngularFire,因为它更有可能让人们提供帮助。
  • 我今天想通了,我只是在我的 date1 setHours 上再添加一个 0,date1.setHours(0, 0, 0, 0),现在返回我需要的所有文件。感谢您的评论。
  • 很高兴听到您成功了 Gustavo! ????。您可能希望将该解决方案写成一个带有解释的小答案,以便未来的访问者也可以从中受益。

标签: javascript google-cloud-firestore angularfire2


【解决方案1】:

我通过在我的 date1 setHours date1.setHours(0, 0, 0, 0) 上添加另一个 0 来解决我的问题。

【讨论】:

    猜你喜欢
    • 2020-02-09
    • 2019-05-20
    • 2020-12-19
    • 1970-01-01
    • 2021-04-29
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多