【发布时间】:2019-11-17 19:45:30
【问题描述】:
我有一张数据地图:
{
name: name,
time: <epoch in seconds>,
}
我的目标是在 Firestore 中使用这些数据创建 6 个文档,但是对于每个文档,time 字段应该增加 1 周。因此,如果我的初始时间是 2019 年 11 月 17 日星期日,那么应该有 6 个带有 time 的文档(作为 Firestore 时间戳)2019 年 11 月 17 日星期日、2019 年 11 月 24 日星期日、2019 年 12 月 1 日星期日等。
我正在使用 https 云功能并尝试这样做:
var name = 'test';
var time = 1573992000; // 7 AM EST on Sun, Nov 17 2019
var data = {
name: name,
time: time,
};
var start = new Date(time * 1000); // convert to milliseconds
var i;
for (i = 0; i < 6; i++) {
var ref = db.collection('shifts').doc();
start.setDate(new Date(start) + 7);
data['time'] = new admin.firestore.Timestamp(start.getTime() / 1000, 0);
batch.set(ref, data);
}
return batch.commit();
但所有文档都以相同的时间出现在 Firestore 中(最初的 6 周后)。我的猜测是批次只设置了最新值。我怎样才能避免这种情况而不必创建 6 个单独的地图?
【问题讨论】:
标签: javascript node.js google-cloud-firestore google-cloud-functions