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



我需要创建一个复合查询来查找Firebase中的重叠日期,因此我想出了以下内容:

    .where('startDate', '<=', endDate);
    .where('endDate', '>=', startDate);

此查询会给我重叠的日期范围。 问题是firebase只允许单个领域的不平等。 所以它不会让我使用该查询。 有解决方法吗?

因此,如果您安排在 06/15/19 - 06/18/19 开会,您应该能够看到其他人在 06/17/19 - 07/01/19 期间开会。 如果我只能在一个日期使用不平等过滤器,我不知道该怎么做。

谢谢你的帮助。

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

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

最新更新