我在这里有一个很奇怪的经历,我计划的功能将每隔12:00进行一次文档更新,并且可以正常工作,但是文档上没有任何变化。
exports.updatePrediksiData = functions.pubsub.schedule('0 0 * * *')
.timeZone('Asia/Manila') // Users can choose timezone - default is America/Los_Angeles
.onRun((context) => {
//This will be run every day at 12:00 AM
return updatePrediction()
.catch(error => {
return db.collection("Issues").doc(new Date().getTime().toString()).set({
error: error.message,
log: "updatePrediction failed to update prediction data."
});
});
});
function updatePrediction() {
const dateFormat = require('dateformat');
dateFormat.i18n = {
dayNames: [
'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat',
'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'
],
monthNames: [
'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec',
'Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember'
],
timeNames: [
'a', 'p', 'am', 'pm', 'A', 'P', 'AM', 'PM'
]
};
var genVal = getPrediksi();
const currentDate = new Date();
//Tuesday and Friday is not included
if (currentDate.getDay() === 2 || currentDate.getDay() === 5)
genVal = "----";
return db
.collection("Prediksi")
.doc("Togel")
.set({
date: dateFormat(new Date().getTime(), "dd mmmm yyyy"),
value: genVal
})
.then(result => {
console.log("Updating prediction is success.");
return true;
}).catch(error => {
console.error("Failed updating the prediction.", error);
throw new Error(error);
});
}
自“星期五”以来,“值”字段的预期新数据将为“ ----”,但即使日期也没有任何变化。
如您所见,这表示成功。
但是,正如您所看到的,没有应用任何更改,起初我以为是Firebase Firestore Rule,但是功能是使用Admin SDK,而没有应用规则。这里出了什么问题?我在这里使用Node js 10,到目前为止,这是我第一次在Firestore上编写时遇到此问题,而其他功能运行良好。提前致谢。
我确认这是Date
对象的问题,我将时区更改为我的目标受众,以解决此问题new Date(new Date().toLocaleString("en-US", { timeZone: "Asia/Jakarta" }))
。最初,我尝试移动功能区域,因为我认为这将解决问题并移动时区,但事实并非如此。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句