我正在尝试通过添加时间表以更改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会向我返回此错误。
答案 0 :(得分:2)
您无法执行的操作。您不能在另一个函数声明中声明和导出函数。如果您希望按计划运行某项内容,则必须在文件的顶层声明并导出它。
您可以做的是让您的函数按计划运行,但是查询Firestore以查看其在每次调用时应如何运行。