我正在尝试比较云函数中的两个时间戳。
不是通过“平等”(如here所述),而是通过“大于”。
我不知道问题出在哪里,但是我无法解决它。
这是我的代码,非常简单:
const lastDayUnread = await admin.firestore()
.collection('/unread')
.where('last_message', '>', 'last_seen')
.get()
我也尝试使用.seconds属性,但仍然没有:
.where('last_message.seconds', '>', 'last_seen.seconds')
如果我从JS客户端执行相同的查询,则它可以正常工作,并且控制台显示我的文档last_seen和last_message属性中存在一个Timestamp对象。
答案 0 :(得分:0)
Cloud Firestore中的where
子句的右侧必须是文字值。不支持查询其他字段的值。
典型的解决方法是使用last_message.seconds - last_seen.seconds
存储一个附加字段,然后:
.where('delta_seconds', '>', 0)