Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何查询时间戳超过24小时的值_Javascript_Firebase_Google Cloud Functions - Fatal编程技术网

Javascript 如何查询时间戳超过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()

因此,我编写了这段代码来检查我的orders集合中的值是否超过24小时,这是因为我想向用户发送一个记住通知,告知他们需要接受订单

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)