使用Cloud Functions for Firebase

时间:2018-05-31 04:45:14

标签: firebase google-cloud-functions

我正在尝试在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,就像我在生产时运行该函数时通常得到的那样?

1 个答案:

答案 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'}}) 的内容,而这只是一个函数的名称。要执行该函数,您必须使用它将接收的参数来实际调用它。

根据command-line tool mode

  

对于PubSub函数,将消息有效内容插入Buffer实例中   并添加可选的数据属性,如下所示:

minutely_tick

在您的情况下,您将使用名为{{1}}的函数并将其传递给您要测试的有效负载。