Firebase関数をローカルで提供しようとしていますが、firebase serve
またはfirebase emulators:start
を実行すると、「ポート5000が開いていません。関数エミュレータを起動できませんでした。」というエラーメッセージが表示されます。
私はWindows 10を使用しているので、ポート番号を変更しようとしました。ポートがファイアウォールによってブロックされているかどうかを確認し、ファイアウォールでポート5000〜5010への新しいルールを作成しましたが、このアプローチはどれもうまくいきませんでした。
最近、同様の問題が公式の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 -g
_を実行して、その中で_firebase-tools
_フォルダーを見つける必要があります。
これで問題が解決するはずです!
コマンドfirebase serve --only functions --Host 0.0.0.0を実行するだけです
最新のfirebase-functions(現在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に戻してみてください)
どこ? node_modules/firebase-tools/lib/emulator/controller.js node_modulesに「firebase-tools」フォルダが見つかりません。 firebase-funstionsとfirebase-adminのみを見つけることができました。
これでうまくいきました。
システムを再起動するだけです。
クイックフィックスnpm i -g [email protected]
解決策:Firebase serve error:Port 5000 is not open。could not start functions emulator
Firebaseの実行時に次のいずれかのエラーメッセージが表示された場合は、別のバージョンのFirebaseツールに切り替えることで問題を簡単に解決できます。
ポート5000が開いていません。機能エミュレーターを開始できませんでした。
Firebase Toolsのバージョン6を使用している場合は、最新バージョン(6.12.0)に切り替えるか、v7.2.2を試すことができます。 Firebaseツールのバージョンに変更するには、次のノードパッケージマネージャーコマンドを実行します。
npm install -g [email protected].