如何使用 firebase:shell 附加调试器 - firestore 云函数

How to attach debugger with firebase:shell - firestore clould functions

已成功在本地配置 firestore 云功能。

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

  1. firebase functions: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"
    },

但它不起作用。

您可以使用函数模拟器。文档很少,但这是一个好的开始: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"` 
}

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

firebase functions:shell --inspect-functions

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

使用 Jetbrains IDE,您可以使用 "Attach to Node.js/Chrome" run configuration.

附加到 运行 进程