Обработка ошибок облачного хранилища на Android

Иногда что-то идёт не по плану, и возникает ошибка.

В случае сомнений проверьте возвращаемую ошибку и посмотрите, что говорится в сообщении об ошибке. Следующий код демонстрирует реализацию пользовательского обработчика ошибок, который проверяет код ошибки и сообщение об ошибке, возвращаемые Cloud Storage . Такие обработчики ошибок можно добавить к различным объектам, используемым в API Cloud Storage (например, UploadTask и FileDownloadTask ).

Kotlin

internal inner class MyFailureListener : OnFailureListener {
    override fun onFailure(exception: Exception) {
        val errorCode = (exception as StorageException).errorCode
        val errorMessage = exception.message
        // test the errorCode and errorMessage, and handle accordingly
    }
}

Java

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
    }
}

Если вы проверили сообщение об ошибке и у вас есть Cloud Storage Security Rules , разрешающие ваши действия, но вы все еще не можете исправить ошибку, посетите нашу страницу поддержки и сообщите нам, чем мы можем вам помочь.

Обработка сообщений об ошибках

Ошибки могут возникать по ряду причин, включая отсутствие файла, отсутствие у пользователя прав доступа к нужному файлу или отмену пользователем загрузки файла.

Для правильной диагностики проблемы и обработки ошибки ниже приведён полный список всех ошибок, которые может вызвать наш клиент, и описание того, как они могут возникнуть. Коды ошибок в этой таблице определены в классе StorageException как целочисленные константы.

Код Причина
ERROR_UNKNOWN Произошла неизвестная ошибка.
ERROR_OBJECT_NOT_FOUND Объект по указанной ссылке отсутствует.
ERROR_BUCKET_NOT_FOUND Для Cloud Storage не настроен ни один сегмент.
ERROR_PROJECT_NOT_FOUND Для Cloud Storage не настроен ни один проект.
ERROR_QUOTA_EXCEEDED Квота в вашем хранилище Cloud Storage превышена. Если вы используете тарифный план Spark, рассмотрите возможность перехода на тарифный план Blaze с оплатой по мере использования . Если вы уже используете тарифный план Blaze, обратитесь в службу поддержки Firebase.

Важно : начиная с 3 февраля 2026 года , для использования тарифного плана Blaze потребуется Cloud Storage , даже для стандартных сегментов.
ERROR_NOT_AUTHENTICATED Пользователь не авторизован, пожалуйста, пройдите авторизацию и попробуйте снова.
ERROR_NOT_AUTHORIZED Пользователь не авторизован для выполнения запрошенного действия. Проверьте свои правила, чтобы убедиться в их корректности.
ERROR_RETRY_LIMIT_EXCEEDED Превышен максимальный лимит времени для выполнения операции (загрузка, скачивание, удаление и т. д.). Попробуйте снова.
ERROR_INVALID_CHECKSUM Контрольная сумма файла на стороне клиента не совпадает с контрольной суммой файла, полученного сервером. Попробуйте загрузить файл еще раз.
ERROR_CANCELED Пользователь отменил операцию.

Additionally, attempting to call getReferenceFromUrl() with an invalid URL will result in an IllegalArgumentException from being thrown. The argument to the above method must be of the form gs://bucket/object or https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>