Firestore collection query on timestamp field using epoch timestamp
请告知如何在时间戳字段上查询Firestore集合?
即使db中存在多个具有填充日期字段(时间戳类型)的文档,下面的查询也不返回任何内容:
1 2 3 4
| db.collection("users").doc('john').
collection("comment").
where("date",">", 0).
get() |
- 为了能够使用日期字段进行查询,您还需要将日期(在本例中为文档中的date字段)与日期进行比较。 0不被视为0,因此这可能会影响您的比较。您能否将零件where("date",">", 0)更改为类似where("date",">", new Date())的东西?这样,您应该在date类型字段之间进行比较。
-
@gso_gabriel谢谢,因此为了将db时间戳与epoch时间戳进行比较,我必须使用where("date",">", new Date(epoch*1000))之类的东西
-
您好@ user947668是的,完全是。这样,您将适应一个近似的日期-考虑到您的结构,这可能很有意义,我不能确定-但是,是的,这样就可以了。您可以在此处找到有关在Firestore中timestamps转换的更多示例。让我知道它是否对您有帮助,如果您认为可以在这里发布有关我的帮助的答案,那么您可以接受或支持,以帮助社区的未来用户。 :)
-
@gso_gabriel我检查了查询,它按预期工作。您可以将其发布为答案。谢谢您的帮助
为了能够使用日期字段进行查询,您还需要将日期(在这种情况下,是文档中的日期字段)与日期进行比较。 0不被视为数字0,因此会影响比较。
它必须是这样的:where("date",">", new Date())。如果您想比较基于纪元时间戳的日期,一个好的解决方案是使用如下所示的位置转换新日期:where("date",">", new Date(epoch*1000))如前所述。在查询的where部分中使用比较后,返回应该正确发生。
此外,可以在此处找到将timestamps转换为Firestore的更多示例。