我正在尝试在index.js中调试云功能。它看起来像这样:
exports.minutely_tick =
functions.pubsub.topic('minutely-tick').onPublish((event) => {
console.log('This job runs every minute');
getData("myParameter")
.then((data) => {
return console.log('Data is ', data);
})
.catch((error) => {
return console.log('Error is: ', error);
});
});
我启动了云功能模拟器,它成功地准备模拟功能。
..但是当我在Cloud Function Emulator中执行 minutely_tick 时:
firebase > minutely_tick
终端只响应:
[Function: bound ]
为什么我没有从我的云功能中获取console.logs,就像我在生产时运行该函数时通常得到的那样?
答案 0 :(得分:1)
您在模拟器中输入的命令不正确。你正在做的是有效地告诉模拟器(它只是一个节点REPL)来打印标识符// invokes a function with the JSON message { hello: 'world' } and attributes { foo: 'bar' }
myPubsubFunction({data: new Buffer('{"hello":"world"}'), attributes: {foo: 'bar'}})
的内容,而这只是一个函数的名称。要执行该函数,您必须使用它将接收的参数来实际调用它。
对于PubSub函数,将消息有效内容插入Buffer实例中 并添加可选的数据属性,如下所示:
minutely_tick
在您的情况下,您将使用名为{{1}}的函数并将其传递给您要测试的有效负载。