我正在尝试每5分钟计算孩子的数量。 我一直在尝试编写一个每X分钟运行一次的代码,每次运行它将计算子代数。
我已经将Firebase文档中的代码修补在一起以用于计划的功能和快照,但是我可能缺少一些东西。
exports.scheduledFunction = functions.pubsub.schedule('every 5
minutes').onRun((context) => {
var ref = firebase.database().ref("location/");
ref.once("value")
.then(function(snapshot) {
var a = snapshot.numChildren(); // 1 ("name")
});
});
尝试部署到Firebase云时出现控制台错误:
8:3错误预期的catch()或返回promise / catch-or-return
9:11警告意外的函数表达式preferred-arrow-callback
9:11错误每个then()应该返回一个值或抛出Promise / always-return
答案 0 :(得分:1)
由于once()
调用是从Firebase异步加载数据的,因此您需要在代码完成时告诉Cloud Functions。为此,您可以从顶级代码中返回一个Promise,然后从其中返回一个值。
是这样的:
exports.scheduledFunction = functions.pubsub.schedule('every 5
minutes').onRun((context) => {
var ref = firebase.database().ref("location/");
return ref.once("value")
.then(function(snapshot) {
var a = snapshot.numChildren(); // 1 ("name")
return true;
});
});
另请参阅: