Иногда что-то идёт не по плану, и возникает ошибка.
В случае сомнений проверьте возвращаемую ошибку и посмотрите, что говорится в сообщении об ошибке. Следующий код демонстрирует реализацию пользовательского обработчика ошибок, который проверяет код ошибки и сообщение об ошибке, возвращаемые 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. Важно : начиная |
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>