【发布时间】:2018-08-21 02:46:31
【问题描述】:
我有一个包含下一个项目的集合,它们的属性之一是日期:
id: xxxxxx
name: xxxx
date: August 21, 2018 at 1:00:00 AM UTC+8 (timestamp)
在 Firebase 云函数中,我尝试查询某个时期的所有对象,该时期可以是日、周、年等。
我想按当前服务器日期查询项目,所以我在 Firebase Cloud Function 中执行此操作:
let auxDate = moment();
dateStart = auxDate.startOf('day').toDate();
dateEnd = auxDate.endOf('day').toDate();
await admin.firestore().collection('items')
.where("date", ">=", dateStart)
.where('date', '<=', dateEnd).get();
控制台打印的dateStart和dateEnd的值为:
Date start: Tue Aug 21 2018 00:00:00 GMT+0000 (UTC)
Date end: Tue Aug 21 2018 23:59:59 GMT+0000 (UTC)
查询返回 0 个项目。但是当我将项目的日期更改为
id: xxxxxx
name: xxxx
date: August 21, 2018 at 8:00:00 AM UTC+8 (timestamp)
查询正确返回项目。
所以现在我知道问题出在偏移量上,但我该如何解决呢?为什么 firebase 以 UTC+8 保存所有日期?
【问题讨论】:
标签: firebase google-cloud-firestore google-cloud-functions