Иногда что-то идет не так, и возникает ошибка.
Если вы не уверены, проверьте возвращенную ошибку и посмотрите, что говорится в сообщении об ошибке.
В следующем примере кода показана реализация специального обработчика ошибок, который проверяет код ошибки и сообщение об ошибке, возвращенные Cloud Storage. Такие обработчики можно добавлять к различным объектам, используемым в Cloud Storage API (например, 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 for Firebase требуется тарифный план Blaze с оплатой по мере использования. Если вы видите эту ошибку в проекте с тарифным планом Spark, вам нужно перейти на тарифный план Blaze, чтобы восстановить доступ. Подробную информацию вы найдете в разделе часто задаваемых вопросов. |
ERROR_NOT_AUTHENTICATED |
Пользователь не аутентифицирован. Выполните аутентификацию и повторите попытку. |
ERROR_NOT_AUTHORIZED |
У пользователя нет прав на выполнение запрошенного действия. Проверьте правила. |
ERROR_RETRY_LIMIT_EXCEEDED |
Превышено максимальное время выполнения операции (загрузки, скачивания, удаления и т. д.). Повторите попытку. |
ERROR_INVALID_CHECKSUM |
Файл на клиенте не соответствует контрольной сумме файла, полученного сервером. Попробуйте загрузить его ещё раз. |
ERROR_CANCELED |
Пользователь отменил действие. |
Кроме того, попытка вызвать getReferenceFromUrl() с недопустимым URL приведет к возникновению ошибки IllegalArgumentException. Аргумент для указанного выше метода должен иметь формат gs://bucket/object или https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>.