Firebase 如何使用Cloud FireStore查询两个日期范围之间的数据?

Firebase 如何使用Cloud FireStore查询两个日期范围之间的数据?,firebase,flutter,dart,google-cloud-firestore,Firebase,Flutter,Dart,Google Cloud Firestore,我正在尝试获取两个日期之间的文档列表,但无效:不同字段上的范围过滤器 这是我的密码: await activationFBInstance .document('8thoOkTGYzVcntOxT2Av') .collection('posts') .where("startDate", isGreaterThan: Timestamp.fromDate(DateTime.now())).where("endDate&

我正在尝试获取两个日期之间的文档列表,但无效:不同字段上的范围过滤器

这是我的密码:

await activationFBInstance
        .document('8thoOkTGYzVcntOxT2Av')
        .collection('posts')
        .where("startDate", isGreaterThan: Timestamp.fromDate(DateTime.now())).where("endDate", isLessThan: Timestamp.fromDate(DateTime.now()))
        .getDocuments()
        .then((value) {
      
      print(value.documents);
    }).catchError((onError) => print('error test 1 ' + onError.toString()));

错误信息非常清楚:您只能对Firestore中的单个字段执行范围筛选

关于的文档也有一个关于its的好章节,其中说:

在复合查询中,范围(
=
)和不等于(
!=
)比较必须全部筛选到同一字段上


因此,Firestore目前无法满足您的需求。您必须对查询中的一个字段和应用程序代码中的另一个字段进行筛选,提出不同的数据模型,使您能够更接近Firestore查询功能的用例,或者考虑使用一个更好地支持你的需求的数据库。

< P>错误信息很清楚:你只能在FiStury./P>上的单个字段上执行范围过滤器。 关于的文档也有一个关于its的好章节,其中说:

在复合查询中,范围(
=
)和不等于(
!=
)比较必须全部筛选到同一字段上

因此,Firestore目前无法满足您的需求。您必须在查询中的一个字段和应用程序代码中的另一个字段中筛选,生成一个不同的数据模型,使您更接近使用FixSt店的查询功能的用例,或者考虑使用一个更好地支持您的需求的数据库。