You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Firebase Functions模拟器配置多端口调试多个代码库?

解决Firebase模拟器多代码库Functions调试端口冲突问题

同一模拟器实例下配置多调试端口

你可以通过修改firebase.json,为每个代码库的Functions单独指定调试端口,这样同一模拟器实例就能同时调试多个代码库:

  1. 在firebase.json的functions数组中,给每个代码库添加inspectPort字段,指定唯一端口:
{
  "functions": [
    {
      "source": "functions-lib-1",
      "codebase": "lib1",
      "inspectPort": 9229
    },
    {
      "source": "functions-lib-2",
      "codebase": "lib2",
      "inspectPort": 9230
    }
  ],
  "emulators": {
    "functions": {
      "port": 5001
    }
  }
}
  1. 启动模拟器时依然使用原命令:
firebase emulators:start --inspect-functions

此时两个代码库的Functions会分别监听9229和9230端口,不会互相干扰。

  1. 在VS Code的.vscode/launch.json中添加两个调试配置,分别对应不同端口:
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug Lib1 Functions",
      "type": "node",
      "request": "attach",
      "port": 9229,
      "address": "localhost",
      "skipFiles": ["<node_internals>/**"],
      "localRoot": "${workspaceFolder}/functions-lib-1",
      "remoteRoot": "/workspace"
    },
    {
      "name": "Debug Lib2 Functions",
      "type": "node",
      "request": "attach",
      "port": 9230,
      "address": "localhost",
      "skipFiles": ["<node_internals>/**"],
      "localRoot": "${workspaceFolder}/functions-lib-2",
      "remoteRoot": "/workspace"
    }
  ]
}

启动多个独立模拟器实例

如果需要完全隔离两个代码库的运行环境,可以启动多个模拟器实例,分别指定调试端口和独立的服务端口:

  1. 启动第一个代码库的模拟器(默认端口):
firebase emulators:start --inspect-functions --project my-project-1
  1. 启动第二个代码库的模拟器,指定调试端口为9230,同时修改所有服务端口避免冲突:
firebase emulators:start --inspect-functions=9230 --project my-project-2 --functions-port 5002 --firestore-port 8081 --auth-port 9099

注意:要确保所有模拟器服务(functions、firestore等)的端口都不与第一个实例重复。

  1. 同样在VS Code的launch.json中配置对应端口的调试项,分别附加到两个模拟器实例即可。

内容的提问来源于stack exchange,提问作者Supersharp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 21:08:38