【发布时间】:2019-02-25 01:31:51
【问题描述】:
我有一个计算每日销售额的 firebase 函数。这个 firebase http 函数每晚 10 点由外部服务调用。 我观察到的是它返回的销售额为 0。但是当我再次手动调用相同的方法时,它给出了正确的数字。
为了确保外部服务调用 URL 的方式没有问题,我每隔 5 分钟安排了两次。比如晚上 10:00 和晚上 10:05。结果是一样的。也就是说,晚上 10:00 的电话给我的总数为 0,而 10:05 的电话给我的预期总数。
下面是计算它的代码:
exports.daily_sales_report = functions.https.onRequest((req, res) => {
var date = new Date()
var dateStr = date.getDate() + '-' + (date.getMonth()+1) + '-' + date.getFullYear()
//query data from firebase
var db = admin.database();
var ref = db.ref('orders')
//dateStr = "11-9-2018"
var totalSale = 0 //total sale amount
ref.orderByChild("order/_date").equalTo(dateStr).on("child_added", function(snapshot) {
totalSale = totalSale + snapshot.val().order._orderTotal
})
console.log("total final sale:" + totalSale)
res.status(200).send('email sent')
})
为什么它只工作第二次?
【问题讨论】:
标签: firebase firebase-realtime-database google-cloud-functions