Angular 仅在1个字段上需要firebase范围限制比较(<;、<;=、>;、>;=)的解决方法

Angular 仅在1个字段上需要firebase范围限制比较(<;、<;=、>;、>;=)的解决方法,angular,firebase,google-cloud-firestore,ionic4,Angular,Firebase,Google Cloud Firestore,Ionic4,我需要创建一个复合查询来查找firebase中的重叠日期,因此我提出了以下建议: .where('startDate', '<=', endDate); .where('endDate', '>=', startDate); ,其中('startDate','=',startDate); 这个查询会给我重叠的日期范围。问题是firebase只允许在单个字段上存在不平等性。所以它不允许我使用这个查询。有解决办法吗 因此,如果您计划在19年6月15日至19年6月18日

我需要创建一个复合查询来查找firebase中的重叠日期,因此我提出了以下建议:

    .where('startDate', '<=', endDate);
    .where('endDate', '>=', startDate);
,其中('startDate','=',startDate);
这个查询会给我重叠的日期范围。问题是
firebase
只允许在单个字段上存在不平等性。所以它不允许我使用这个查询。有解决办法吗

因此,如果您计划在19年6月15日至19年6月18日召开会议,您应该能够看到其他人在19年6月17日至19年7月1日召开会议。如果我只能在一次约会中使用不平等过滤器,我不知道如何做到这一点


谢谢您的帮助。

如果您只存储日期(而不是时间),那么您还可以将会议的每个单独日期存储在数组类型的字段中。因此,6月15日至6月18日会议的文档将包含一个包含四个单独日期的数组,可能表示为整数格式的YYYYMMDD

现在,如果要查找重叠,可以使用为该范围内的每个日期执行一次查询。合并客户端上的查询结果,结果将是与原始会议的每个给定日期至少共用一天的所有会议