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

如何修改Firebase Emulator Hub的端口?配置被自动删除问题

修改Firebase Emulator Hub端口的方法

我运行Firebase模拟器时,看到的端口信息如下:

┌────────────────┬────────────────┬─────────────────────────────────┐
│ Emulator       │ Host:Port      │ View in Emulator UI             │
├────────────────┼────────────────┼─────────────────────────────────┤
│ Authentication │ 127.0.0.1:9099 │ http://127.0.0.1:4000/auth      │
├────────────────┼────────────────┼─────────────────────────────────┤
│ Functions      │ 127.0.0.1:5001 │ http://127.0.0.1:4000/functions │
├────────────────┼────────────────┼─────────────────────────────────┤
│ Firestore      │ 127.0.0.1:8080 │ http://127.0.0.1:4000/firestore │
├────────────────┼────────────────┼─────────────────────────────────┤
│ Storage        │ 127.0.0.1:9199 │ http://127.0.0.1:4000/storage   │
└────────────────┴────────────────┴─────────────────────────────────┘
  Emulator Hub running at 127.0.0.1:4400
  Other reserved ports: 4500, 9150

通常可以在firebase.json里配置各模拟器的端口,示例如下:

"emulators": {
  "auth": {
    "port": 9099
  },
  "functions": {
    "port": 5001
  },
  ...
}

但这种方式没办法修改Emulator Hub的端口(我需要把4400端口留给Storybook使用)。我尝试过在配置里添加hub字段:

"emulators": {
  "hub": {
    "port": 4401
  },
  ...
}

但启动模拟器时,这个hub配置会被自动删除。

可行解决方案

要修改Emulator Hub的端口,需通过命令行参数指定,而非firebase.json配置:

  • 启动模拟器时直接添加--hub-port参数:
    firebase emulators:start --hub-port 4401
    
  • 若要默认使用指定端口,可在项目package.json的scripts中添加自定义命令:
    "scripts": {
      "emulators": "firebase emulators:start --hub-port 4401"
    }
    

之后运行npm run emulators即可用指定端口启动Hub及其他模拟器。

如果需要搭配其他参数(比如导入预设数据),可组合命令:

firebase emulators:start --hub-port 4401 --import ./emulator-data

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 17:53:11