Android

Cloud Storage for Firebaseで404エラーが来てアクセス出来ない問題の対処方法

Cloud Storageで画像をアップロードしてみた所、いつもなら簡単にアップロード出来るところ、404エラーという見慣れないエラーで、できませんでした。

この記事ではその原因と対応方法を解説します。

原因

原因は、2024/10/30から実行されたCloud Storageバケットの名前変更でした。

どういうことかというと、今までCloud Storageにアクセスする場合
[Firebaseのプロジェクト名].appspot.com
というバケット(ドメイン??)でアクセスしていたのが、
[Firebaseのプロジェクト名].firebasestorage.app
に変わるという事です。

 

実際、2024/11頭にFirebaseのコンソールでCloud Storageを有効化にした所、バケット名は「firebasestorage.app」となっていました。

このバケット名、普段は特に指定しなくてもCloud Storageのライブラリーが勝手に追加してくれているのでこんな感じでファイルにアクセスしていたと思います。

let storege = Storage.storage()
let storegeRef = storage.child("hoge/sample.jpg")

 

しかし、ライブラリはデフォルトで古いバケット名「appspot.com」に繋ぎにいくようです。
エラーメッセージをじっと眺めていてやっとその事に気づきました。

serverError: ["bucket": "test-quickmemo2.appspot.com" ....

 

解決方法

Storageのインスタンスを生成する時にバケット名を指定できるので、明示的に指定することで解決します。

let storage = Storage.storage(url: "gs://test-quickmemo2.firebasestorage.app")
let storegeRef = storage.child("hoge/sample.jpg")

 

まだ10/30から数日しか経っていないので、これから新しくCloud Storageを使おうとする人の悲鳴がこだましそうですね…この記事で救われることを願っております。