Javascript 如何查询时间戳超过24小时的值
因此,我编写了这段代码来检查我的orders集合中的值是否超过24小时,这是因为我想向用户发送一个记住通知,告知他们需要接受订单Javascript 如何查询时间戳超过24小时的值,javascript,firebase,google-cloud-functions,Javascript,Firebase,Google Cloud Functions,因此,我编写了这段代码来检查我的orders集合中的值是否超过24小时,这是因为我想向用户发送一个记住通知,告知他们需要接受订单 exports.rememberToFinishOrder = functions.pubsub.schedule('3 * * * *').onRun(async (context) => { var db = admin.firestore(); const tsToMillis = db.Timestamp.now().toMillis()
exports.rememberToFinishOrder = functions.pubsub.schedule('3 * * * *').onRun(async (context) => {
var db = admin.firestore();
const tsToMillis = db.Timestamp.now().toMillis()
const compareDate = new Date(tsToMillis - (24 * 60 * 60 * 1000)) //24 hs
let snap = await db.collection('orders').where("timestamp","<",compareDate).get()
return snap.forEach(async(doc) => {
const userId = doc.data().uid
let userSnap = await db.collection('user').doc(userId).get()
userSnap.forEach((doc) => {
const deviceToken = doc.data().deviceToken
const payload = {
notification: {
title: "Did you got your order?",
body: "If so, dont forget to accept the order in your orders tab."
}
}
return admin.messaging().sendToDevice(deviceToken,payload)
})
});
});
但我怀疑问题出在你身上
db.Timestamp.now().toMillis()
我做得对吗?什么是
admin.firestore().Timestamp
和admin.firestore.Timestamp
返回的?这里的问题是错误的,错误ReferenceError:db未定义
表示变量db
未定义。因此,调用admin.firestore()
返回的对象是导致错误的对象。您必须检查为什么admin.firestore()
没有返回您所期望的正确数据。它返回两种不同的内容,第一种是Any,另一种是Timestamp,我会检查这是否是问题所在,谢谢@pala。如果您正在获取时间戳,您只需使用admin.firestore().Timestamp
和admin.firestore.Timestamp
返回的内容将其转换为JavaScript日期对象即可。这里的问题是错误的,错误ReferenceError:db未定义
表示变量db
未定义。因此,调用admin.firestore()
返回的对象是导致错误的对象。您必须检查为什么admin.firestore()
没有返回您所期望的正确数据。它返回两种不同的内容,第一种是Any,另一种是Timestamp,我会检查这是否是问题所在,谢谢@pala。如果您正在获取时间戳,您可以使用
ReferenceError: db is not defined
at exports.rememberToFinishOrder.functions.pubsub.schedule.timeZone.onRun
(/srv/index.js:131:16)
at cloudFunction (/srv/node_modules/firebase-functions/lib/cloud-functions.js:127:23)
at /worker/worker.js:825:24
at <anonymous>
at process._tickDomainCallback (internal/process/next_tick.js:229:7)