如何使用Firebase:shell附加调试器-Firestore Clould函数

时间:2018-09-22 15:38:26

标签: firebase google-cloud-functions firebase-cli

在本地成功配置的Firestore云功能。

可以使用以下命令在本地运行功能。

  1. firebase函数:shell --port = 3535
  

firebase var data = require('./ data'); wChangedEvent(data.default);

... ... 在wChangedEvent中打印任何console.log。 所以这正常工作。

但是我需要在Visual Studio代码中附加调试器。我尝试使用以下配置。

   {
        "type": "node",
        "request": "attach",
        "name": "Attach",
        "port": 3535,
        "protocol": "inspector"
    },

但是它不起作用。

2 个答案:

答案 0 :(得分:1)

截至2020年末,this pull request增加了对--inspect-functions标志的支持。

firebase functions:shell --inspect-functions

除非您明确提供另一个,否则它将打开默认的节点调试器端口9229

使用Jetbrains IDE,您可以使用"Attach to Node.js/Chrome" run configuration附加到正在运行的进程。

答案 1 :(得分:-1)

您可以使用功能模拟器。很少有文档,但这是一个好的开始:https://firebase.google.com/docs/functions/config-env

$ npm install -g @google-cloud/functions-emulator`

$ functions start

$ functions deploy api --trigger-http --timeout 600s

$ functions inspect api --port 9229

创建VS Launce配置:

{
  "type": "node",
  "request": "attach",
  "name": "Attach",
  "port": 9229 
}

现在您可以F5开始调试。

这将不会自动从数据库接收触发器,但是它仍然非常有用,因为您可以使用http请求来触发函数并对其进行调试。

提示:将此脚本添加到您的package.json中,以便您可以轻松npm run debug来构建并将其部署到仿真器:

"scripts": {
  ...
  "debug": "npm run build && functions deploy api --trigger-http --timeout 600s && functions inspect api --port 9229"` 
}
相关问题