【发布时间】:2019-04-10 06:35:29
【问题描述】:
我之前就这件事问过问题,但还是有点卡住。我要解决的问题如下: - 每当添加文档时,都需要在(2 小时)后的某个时间进行更新
我目前的解决方法是: - 我使用 onCreate 创建文档的时间戳 - 我将文档附加到数组 - 我有另一个 https 函数,它每 1 分钟触发一次(作为 cron 作业),它检查数组中的项目并将当前时间戳与文档的时间戳(这是数据库中的一个变量)进行比较
我的代码如下:
const array = []
export const onTimerCreate = functions.firestore
.document(`Message/{UserId}/{ChatRoomId}/{UserId_1}`)
.onCreate((snapshot, context) => {
const timestamp = admin.firestore.Timestamp.now().seconds
array.push(snapshot)
return snapshot.ref.update({ creationTime: timestamp})
})
export const testDelay = functions.https.onRequest((request, response) => {
const timestamp = admin.firestore.Timestamp.now().seconds
array.forEach( snapshot => {
const data = snapshot.data()
const time = data.creationTime
const delay = (data.delay) / 1000
const actualTime = time + delay
console.log(array)
if (actualTime > timestamp) {
return snapshot.ref.update({ delay : 0})
}
})
})
但是,现在的问题是请求在 60 秒后才超时。我认为正在发生的事情是我没有正确附加文档,因为我使用第一个函数向其中添加内容的数组没有保存数据。但是我不确定如何解决这个问题。我们将不胜感激。
【问题讨论】:
标签: javascript typescript firebase google-cloud-firestore