У меня есть функция firebase, которая вычисляет количество ежедневных продаж.Эта http-функция firebase вызывается внешней службой каждую ночь в 10 вечера.То, что я заметил, было то, что он возвращал продажи как 0. но когда я вручную вызвал тот же метод еще раз, он дал правильное число.
Чтобы убедиться, что проблема не связана с тем, как внешняя служба вызывает URL-адрес, который я запланировал дважды, с интервалом в 5 минут.как 10:00 вечера и 10:05 вечера.И результаты такие же.То есть звонок в 22: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')
})
почемуэто работает только 2-й раз?