技術メモ

習得したIT技術の備忘録

【Firebase Hosting】削除したプロジェクトを復元してデプロイするとError: HTTP Error: 404, Requested entity was not found.になる

Firebaseで一度削除して復元したプロジェクトにHostingデプロイすると、エラーになりデプロイできなくなる事象の調査と解消した方法をご紹介します。 (前提:プロジェクト削除前はデプロイできていた)

Error: HTTP Error: 404, Requested entity was not found.

ターミナル画面のスクショ。firebase deployコマンドの後404エラーが発生している

解消した方法

ターミナル画面のスクショ。firebae deployコマンドの後deploy completeと表示されている

結論からいうと「プロジェクトを復元した後1日待ったらデプロイできるようになった」です。
(原因がわかっていないので、1日待つことが解消の要因かどうかは断定できませんが私の場合はそうでした)

解決までの流れ
1日目 am11:00頃 プロジェクトを復元する
1日目 am12:00頃 デプロイすると404エラーになる。調べて色々試してみるが解消しない
2日目 am10:00頃 デプロイに成功する(この日は特に何もしていない。1日目の状態のまま)

解消するまでに試したこと

まずはプロジェクトが存在するか確認

以下コマンドで、デプロイ先のプロジェクトが存在するか確認する

$ firebase projects:list

↓ 結果にデプロイ対象の「プロジェクトが表示されている」「Project ID に(current)が表示されている」が確認できればOK
ターミナル画面のスクショ。firebase projects:listの実行結果が表示されている

対象のプロジェクトに(current)が表示されていない場合は、以下のコマンドで切り替える

$ firebase use (PROJECT_ID)

①firebase-toolsを最新にする

以下コマンドでツールを更新する

$ npm install -g firebase-tools

②firebaseプロジェクトを初期化する

以下コマンドで初期化

$ firebase init

③デプロイ ターゲットを設定する

以下コマンドでデプロイターゲットを設定

$ firebase target:apply hostign (TARGET_NAME) (RESOURCE_IDENTIFIER)
  • TARGET_NAME・・・デプロイ先である Hosting サイトの一意の名前(Hosting サイト内で被ってなければ好きな名前を付けていいよということ)
  • RESOURCE_IDENTIFIER・・・Firebase プロジェクトにリストされている Hosting サイトの SITE_ID
  • SITE_ID・・・デプロイした場合に表示される「SITE_ID.web.app」のドメイン部分

これは複数のHostingサイトがある場合に設定するものなので、今回は関係なさそうでしたmm
以下コマンドで設定をクリアしました。

$ firebase target:clear  hosting (TARGET_NAME)

上記色々試しましたが、冒頭に書いた通りなぜか一日待ったらデプロイできるようになりました。
プロジェクトを復元した場合にデプロイできるようになるまで何かしらのタイムラグがあるのか、単純にローカル環境の問題だったのか。。。謎です

参考サイト

apprythm.com

uyamazak.hatenablog.com

Firebase CLI リファレンス  |  Firebase Documentation

デプロイ ターゲット  |  Firebase Documentation