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 {{
: : firebase_storage }} :用にバケットが設定されていません。
ERROR_PROJECT_NOT_FOUND {{
: : firebase_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 のサポートページをご覧ください。