Flutter で Cloud Storage のエラーを処理する

アプリをビルドする際、思いどおりにいかなかったり、エラーが発生したりすることがあります。

理由がわからないときは、関数からスローされた例外をキャッチして、エラー メッセージの内容を確認します。

final storageRef = FirebaseStorage.instance.ref().child("files/uid");
try {
  final listResult = await storageRef.listAll();
} on FirebaseException catch (e) {
  // Caught an exception from Firebase.
  print("Failed with error '${e.code}': ${e.message}");
}

エラー メッセージを処理する

エラーが発生する理由として、ファイルが存在しない、目的のファイルのアクセス権がユーザーにない、ユーザーがファイルのアップロードをキャンセルしたなど、たくさんの理由が考えられます。

問題を適切に診断してエラーを処理するには、クライアントで発生するすべてのエラーとその発生理由について説明した以下の全一覧をご覧ください。

コード 説明
storage/unknown 不明なエラーが発生しました。
storage/object-not-found 目的の参照にオブジェクトが存在しません。
storage/bucket-not-found Cloud Storage 用にバケットが構成されていません。
storage/project-not-found Cloud Storage 用にプロジェクトが構成されていません。
storage/quota-exceeded Cloud Storage バケットの割り当てを超えました。無料枠でご利用中の場合は、有料プランにアップグレードしてください。有料プランをお使いの場合は、Firebase サポートまでお問い合わせください。
storage/unauthenticated 承認されていないユーザーです。認証してから、もう一度お試しください。
storage/unauthorized 目的の操作を行う権限がユーザーにありません。セキュリティ ルールが正しいことをご確認ください。
storage/retry-limit-exceeded オペレーション(アップロード、ダウンロード、削除など)の最大時間制限を超えました。もう一度アップロードしてみてください。
storage/invalid-checksum クライアント上のファイルが、サーバーで受信されたファイルのチェックサムと一致しません。もう一度アップロードしてみてください。
storage/canceled ユーザーがオペレーションをキャンセルしました。
storage/invalid-event-name 無効なイベント名が指定されました。[runningprogresspause] のいずれかでなければなりません。
storage/invalid-url 無効な URL が refFromURL() に指定されました。形式は、「gs://bucket/object」または「https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>」でなければなりません。
storage/invalid-argument put() に渡される引数は、FileBlob、または UInt8 の配列でなければなりません。putString() に渡される引数は、raw、Base64、または Base64URL 文字列でなければなりません。
storage/no-default-bucket 構成ファイルの storageBucket プロパティにバケットが設定されていません。
storage/cannot-slice-blob 通常、ローカル ファイルの変更時(削除、再保存など)に発生します。ファイルが変更されていないことを確認した後、もう一度アップロードしてみてください。
storage/server-file-wrong-size クライアント上のファイルが、サーバーで受信されたファイルのサイズと一致しません。もう一度アップロードしてみてください。