当前位置: 首页 > 知识库问答 >
问题:

FireStore:当前日期小于到期日的查询子句不能使用执行相同检查的规则

丌官运珧
2023-03-14
firebase.firestore().collection('elements').where('end', '>', new Date()).get();
match /elements/{document=**} {
  allow read: resource.data.end > request.time
}

共有1个答案

淳于思淼
2023-03-14

几乎可以肯定的是,客户机的时钟与谷歌服务器的时钟不匹配。如果客户端时钟的运行速度比Google的时钟稍微快一点,规则将拒绝查询。

您可以尝试从日期添加一些填充,以从当前时间添加合理的偏移量:

// add 10 seconds from current time so as not to undershoot the end
.where('end', '>', new Date(Date.now() + 10000))

虽然对于时钟与世界标准合理同步的客户机来说,这可能工作正常,但如果客户机的时钟仍然离我们很远,它仍然可能失败。

 类似资料:
  • 我正在进行JavaScript验证,验证文本框的日期是否等于当前日期。 如果大于或等于今天的日期,则显示错误消息。 注意:在我的中,我已将日期转换为格式。所以我需要检查date与格式的当前日期。这是我的代码: 我需要使用日期的格式来检查我的文本框中的日期,因此我今天的值只能使用日期的格式。

  • 问题内容: 我正在尝试找出最有效(最佳性能)的方法来检查当前日期的日期字段。目前,我们正在使用: 问题答案: 编辑:正如对此答案的注释中所指出的那样,这不是理想的解决方案。还要检查该线程中的其他答案。

  • 我的文档中有一个日期范围(使用日期对象)如下所示 我试图弄清楚如何构建一个查询来返回包含特定日期的所有事件,例如,像.... 如果查询显示类似这样的内容,但在Firestore查询限制下可能不可能出现这种情况。 因此,我一直在挠头几个小时,要么为此构建一个查询,要么以某种方式结构我的数据,以允许这样做。 这有可能吗?

  • 问题内容: 我已经编写了一些代码来检查两个日期,即开始日期和结束日期。如果结束日期早于开始日期,则会提示您结束日期早于开始日期。 我还想添加检查开始日期是否在今天之前(今天和用户使用该应用程序的那天一样)。(下面的日期检查器代码,如果有任何影响,那么所有这些都为Android编写) 问题答案: 这有帮助吗?

  • 我需要帮助查询与日期范围的长收集。请参阅下面的示例文档。我想用日期范围查询startTime字段。