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