Firebase服务错误:端口5000未打开。无法启动功能模拟器

Vic*_*ida 13 javascript firebase firebase-tools

我试图在本地提供Firebase功能,但是当我运行firebase servefirebase emulators:start错误消息是:“端口5000未打开,无法启动功能模拟器时”。

我使用的是Windows 10,因此我尝试更改端口号,检查端口是否被防火墙阻止,并在防火墙中为端口5000-5010创建了新规则,但这些方法均不适用于我。

eri*_*579 61

MacOS Monterey中,端口 5000 可能被新的“AirPlay 接收器”占用。可以在“设置”->“共享”中禁用此功能:

用于禁用 AirPlay 接收器的设置面板的屏幕截图

禁用 AirPlay 接收器(如果不需要)可释放端口 5000。


小智 28

对于 Mac/Linux,使用终端/外壳查找进程 ID (PID),然后终止进程。

sudo lsof -i :5000
sudo kill -9 PID
Run Code Online (Sandbox Code Playgroud)

  • 如果您使用的是 macOS Monterey,Airplay 服务器现在使用端口 5000,因此您需要更改进程的端口或在“系统偏好设置”>“共享”中终止 Airplay 接收器 (28认同)
  • `lsof -t -i tcp:5000 | lsof -t -i tcp:5000 | xargs Kill`​​ - 一行替代方案,通过管道将 lsof 的输出传递给kill (h/t [@manav](/sf/ask/269858921/在-mac/3855359#3855359)) (12认同)

Ven*_*tra 15

移植50007000通过 MacOS Monterey 上的播放进行拍摄。

按照此处的建议关闭 Airplay 接收器或

firebase.json使用不同的端口更新

"emulators": {
   
    "hosting": {
      "port": 5004
    }
}
Run Code Online (Sandbox Code Playgroud)


Man*_*uel 12

对于 Windows 用户:

netstat -ano|findstr "PID :5000"
Run Code Online (Sandbox Code Playgroud)

然后在行尾找到进程 ID (PID)。

taskkill /pid FOUNDPID /F
Run Code Online (Sandbox Code Playgroud)

命令taskkill在 VS Code 上下文的终端内不起作用。它需要一个(提升的)CMD-prompt 或等效的 Powershell 环境才能成功终止对 127.0.0.1:5000 的侦听。


小智 11

这里的问题是您的端口号 5000 正在运行某个进程。因此,首先,您需要终止该进程。

在ubuntu中查找进程ID

须藤 lsof -i :5000

假设 PID 你得到 14541

杀死进程

须藤杀-9 14541


小智 7

或者使用不同的端口,这是一个简单的解决方案。例如, firebase serve -p 5001


Wen*_*igo 5

最近在官方的github仓库中报告了一个类似的问题:https : //github.com/firebase/firebase-tools/issues/1606

如您所见,这是由依赖项(节点端口查找器)中的错误引起的。https://github.com/http-party/node-portfinder/pull/86

一个快速的编辑方法是使用旧版本的节点端口查找器(v 1.0.21)。或者,您可以通过编辑node_modules/firebase-tools/lib/emulator/controller.js并更改yield pf.getPortPromise({ port, stopPort: port })为来完成此操作yield pf.getPortPromise({ port, stopPort: port + 1 })

编辑:如Mladen Skrbic所建议,为了找到该firebase-tools文件夹,您应该运行npm root -gfirebase-tools在其中找到该文件夹。

这应该可以解决问题!


war*_*eld 5

lsof -t -i tcp:5000 | xargs kill

Mac 用户的一种单行替代方法,它将进程 ID 直接通过管道传输到kill. h/t @manav

最初的问题是针对 Windows 的,但可能对其他人有用,因为问题现在在搜索结果中排名靠前。


Mer*_*çen 2

而不是最新的 firebase-functions(当前是 3.2.0),强制它保持在 3.0.2 在我的例子中解决了。

    "dependencies": {
        "firebase-admin": "^8.2.0",
        "firebase-functions": "3.0.2",
        ...
    }
Run Code Online (Sandbox Code Playgroud)

(我还使用 firebase-tools 版本 7.0.2 atm,没有检查最新版本。如果它不起作用,请尝试将 firebase-tools 恢复到 7.0.2)