首页 > 解决方案 > 如何使用 Firestore 仅从特定日期获取数据?

问题描述

我正在尝试使用 firestore 将集合中的所有文档放入列表中,我想要仅在某一年上传的文档。

所有文档中都有一个名为“dateAdded”的字段,它存储格式为“dd-MM-yyyy”的日期。

用于测试我只有 3 个文件,2 个在 2020 年上传,1 个在 2019 年上传

QuerySnapshot querySnapshot= await Firestore.instance
                      .collection('Deceased')
                      .where("dateAdded",
                      isGreaterThanOrEqualTo:"01-01-"+year )
                       .where("dateAdded",isLessThanOrEqualTo:"31-12-"+year )
                      .getDocuments();

我试图这样做,只有第一个条件有效。有什么建议么?

标签: dateflutterdartgoogle-cloud-firestore

解决方案


有一个叫做startAtorstartAfterendAtor的东西endBefore你可以使用,要使用它,你必须首先按要使用查询的字段排序,我在这里使用startAtendAt应该给你你想要的结果,我相信这是一个记录整年

QuerySnapshot querySnapshot= await Firestore.instance
                      .collection('Deceased')
                      .orderBy('dateAdded')
                      .startAt([DateTime(year,1,1,0,0,0)])
                      .endAt([DateTime(year,12,31,23,59,59])(
                      .getDocuments();

推荐阅读