Ошибка обслуживания Firebase: порт 5000 не открыт. Не удалось запустить эмулятор функций
Я пытаюсь обслуживать функции Firebase локально, но когда я запускаю firebase serve
или firebase emulators:start
, появляется сообщение об ошибке: "Порт 5000 не открыт, не удалось запустить эмулятор функций".
Я использую Windows 10, поэтому я попытался изменить номер порта, проверить, заблокирован ли порт брандмауэром, и я создаю новое правило в брандмауэре для портов 5000-5010, но ни один из этих подходов не помог мне.
Ответы
Ответ 1
Недавно в официальном репозитории github сообщалось о похожей проблеме: https://github.com/firebase/firebase-tools/issues/1606.
Это вызвано ошибкой в зависимости (указатель порта узла), как вы можете видеть здесь. https://github.com/http-party/node-portfinder/pull/86
Быстрое исправление для его редактирования может заключаться в использовании старой версии узла portfinder (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 })
.
ОБНОВЛЕНИЕ:
По предложению Младена Скрбича, чтобы найти папку firebase-tools
, вы должны запустить npm root -g
и найти там папку firebase-tools
.
Это должно решить проблему!
Ответ 2
Вместо последних firebase-функций (в настоящее время это 3.2.0), в моем случае было решено заставить его оставаться на 3.0.2.
"dependencies": {
"firebase-admin": "^8.2.0",
"firebase-functions": "3.0.2",
...
}
(Также я использую firebase-tools версии 7.0.2 atm, не проверял его с последней версией. Если это не работает, попробуйте вернуть firebase-tools в 7.0.2)
Ответ 3
где?
node_modules/firebase-инструменты/Lib/Эмулятор/controller.js
Я не могу найти папку "firebase-tools" в node_modules.
Я смог найти только firebase-funstions и firebase-admin.
Ответ 4
Та же ошибка происходит и со мной тоже
Error: Port 5001 is not open, could not start functions emulator.
Я попытался использовать версию 6.12.0
и получил ошибки типа.