Android でエラーを処理する

操作が思いどおりにいかなかったり、エラーが発生したりすることがあります。

疑わしいときは、返されたエラーをチェックして、エラー メッセージの内容を確認します。 次のコードは、Firebase Storage から返されるエラーコードおよびエラー メッセージを検証するカスタム エラー ハンドラの実装を示します。このようなエラーハンドラを、Storage API で使用されるさまざまなオブジェクト(UploadTaskFileDownloadTask など)に追加できます。

class MyFailureListener implements OnFailureListener {
  @Override
  public void onFailure(@NonNull Exception exception) {
    int errorCode = ((StorageException) exception).getErrorCode();
    String errorMessage = exception.getMessage();
    // test the errorCode and errorMessage, and handle accordingly
  }
}

エラー メッセージをチェックし、Firebase Storage セキュリティ ルールで操作を許可した後でもエラーを解決できない場合は、サポートページにアクセスしてお問い合わせください。

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

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

問題を適切に診断してエラーを処理するには、クライアントで発生するすべてのエラーとその発生理由について説明した、以下の全一覧をご覧ください。この表のエラーコードは、StorageException クラスで整数定数として定義されています。

コード 理由
ERROR_UNKNOWN 不明なエラーが発生しました。
ERROR_OBJECT_NOT_FOUND 目的の参照にオブジェクトが存在しません。
ERROR_BUCKET_NOT_FOUND Cloud Storage 用にバケットが設定されていません。
ERROR_PROJECT_NOT_FOUND Cloud Storage 用にプロジェクトが設定されていません。
ERROR_QUOTA_EXCEEDED Cloud Storage バケットの割り当てを超えました。無料の階層でご利用中の場合は、有料プランにアップグレードしてください。有料プランをお使いの場合は、Firebase サポートまでお問い合わせください。
ERROR_NOT_AUTHENTICATED 承認されていないユーザーです。認証してから、もう一度お試しください。
ERROR_NOT_AUTHORIZED 目的の操作を行う権限がユーザーにありません。ルールが正しいことをご確認ください。
ERROR_RETRY_LIMIT_EXCEEDED 操作(アップロード、ダウンロード、削除など)の最大時間制限を超えました。もう一度お試しください。
ERROR_INVALID_CHECKSUM クライアント上のファイルが、サーバーで受信されたファイルのチェックサムと一致しません。もう一度アップロードしてみてください。
ERROR_CANCELED ユーザーがオペレーションをキャンセルしました。

また、無効な URL を指定して getReferenceFromUrl() を呼び出そうとすると、IllegalArgumentException がスローされます。上記のメソッドの引数は、gs://bucket/object または https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN> の形式である必要があります。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。