我正在尝试通过添加时间表来更改Firebase内节点的状态来实现云功能,即将{active:true}更改为{active:false}
const admin = require('firebase-admin');
admin.initializeApp();
const db = admin.firestore();
exports.createPrd = functions.firestore.document('products/{itemId}').onCreate((ev) => {
db.collection('products').doc(ev.id).get().then( doc => {
var dia = doc.data().limitDay;
var mes = doc.data().limitMonth;
var hora = doc.data().limitHour;
exports.schedulerFun = functions.pubsub.schedule(dia+" "+mes+" "+hora).onRun((context) => {
console.log('Se acabo la buena onda', doc.data().productName)
db.collection('products').doc(ev.id).update({
activo: false
})
})
return 0;
}).catch(err => {console.log(err)});
});
这是我考虑过的代码,该代码传递了我从firebase那里获取的参数以激活计划,但是在通过onCreate激活函数时,firebase会向我返回此错误。
返回的函数未定义,预期的承诺或价值
最佳答案
您尝试做的事是不可能的。您不能在另一个函数声明中声明和导出函数。如果要按计划运行某些内容,则必须在文件的顶层声明并导出它。
相反,您可以做的是让您的函数按计划运行,但是查询Firestore以查看其在每次调用时应如何运行。
关于javascript - 带时间表的云功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58823930/