Как обрабатывать ошибки Cloud Storage во Flutter

Иногда при создании приложения что-то идет не так и возникает ошибка.

Если вы сомневаетесь, перехватите исключение, созданное функцией, и посмотрите, что говорится в сообщении об ошибке.

final storageRef = FirebaseStorage.instance.ref().child("files/uid");
try {
  final listResult = await storageRef.listAll();
} on FirebaseException catch (e) {
  // Caught an exception from Firebase.
  print("Failed with error '${e.code}': ${e.message}");
}

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

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

Чтобы правильно диагностировать проблему и обработать ошибку, ознакомьтесь с полным списком всех ошибок, которые может выдать наш клиент, и причинами их возникновения.

Код Описание
storage/unknown Произошла неизвестная ошибка.
storage/object-not-found По указанной ссылке нет объекта.
storage/bucket-not-found Для Cloud Storage не настроен сегмент.
storage/project-not-found Для Cloud Storage не настроен проект.
storage/quota-exceeded Превышена квота для сегмента. Для работы с Cloud Storage for Firebase требуется тарифный план Blaze с оплатой по мере использования. Если вы видите эту ошибку в проекте с тарифным планом Spark, вам нужно перейти на тарифный план Blaze, чтобы восстановить доступ. Подробную информацию можно найти в разделе часто задаваемых вопросов.
storage/unauthenticated Пользователь не аутентифицирован. Выполните аутентификацию и повторите попытку.
storage/unauthorized У пользователя нет прав на выполнение этого действия. Проверьте правила безопасности.
storage/retry-limit-exceeded Превышено ограничение по времени на выполнение операции (загрузка, скачивание, удаление и т. д.). Попробуйте загрузить его ещё раз.
storage/invalid-checksum Контрольная сумма файла на клиенте не совпадает с контрольной суммой файла, полученного сервером. Попробуйте загрузить его ещё раз.
storage/canceled Пользователь отменил действие.
storage/invalid-event-name Указано недопустимое название события. Допустимые значения: running, progress, pause.
storage/invalid-url В refFromURL() указан недопустимый URL. Допустимые форматы: gs://bucket/object или https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>.
storage/invalid-argument Аргумент, переданный в put(), должен быть массивом File, Blob или UInt8. Аргумент, переданный в putString(), должен быть необработанной строкой, строкой Base64 или Base64URL.
storage/no-default-bucket В свойстве storageBucket конфигурации не задан сегмент.
storage/cannot-slice-blob Обычно это происходит, когда локальный файл был изменен (удален, сохранен заново и т. д.). Убедитесь, что файл не изменился, и повторите попытку.
storage/server-file-wrong-size Размер файла на клиенте не совпадает с размером файла, полученного сервером. Попробуйте загрузить его ещё раз.