🔫
Firebase Emulator で 8080 ポートにアクセスできない
トラブル
Firebase Emulator を起動しようとしたところ以下のエラーが発生しました。
Windows PowerShell
> firebase.cmd emulators:start
Error: TIMEOUT: Port 8080 on localhost was not active within 60000ms
firestore に設定している 8080 ポートが他のプロセスと被っているのかと思いポート番号を変更したり OS を再起動してみたのですが改善しませんでした。
firebase.json
{
"emulators": {
"auth": {
"port": 9099
},
"functions": {
"port": 5001
},
"firestore": {
"port": 8080
},
"hosting": {
"port": 5000
},
"ui": {
"enabled": true
}
}
}
バージョン
> firebase.cmd --version
10.1.2
> npm --version
8.3.2
> node --version
v17.4.0
シューティング
方法1: ポートの重複を回避
当然ですが他のプロセスが 8080 ポートを使用していると Firebase Emulator が使用できません。
8080 ポートを使用しているプロセスを終了するか、異なるポートを使用することで起動できるようになります。
firebase.json
{
"emulators": {
"firestore": {
"port": 8081
},
}
}
方法2: host を指定
上記 Issue コメントにあるように "host": "127.0.0.1"
を指定すると起動するようになりましたが動作がちょっと怪しい。
firebase.json
{
"emulators": {
"auth": {
"port": 9099
},
"functions": {
"port": 5001
},
"firestore": {
"port": 8080,
"host": "127.0.0.1"
},
"hosting": {
"port": 5000
},
"ui": {
"enabled": true
}
}
}
方法3: Node 16 へダウングレード
Node のバージョンを 16 に下げたら問題なく動くようになりました。
Discussion