Обработка ошибок облачного хранилища на 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 Для облачного хранилища не настроен ни один сегмент.
storage/project-not-found Ни один проект не настроен для облачного хранилища.
storage/quota-exceeded Квота в вашем сегменте Cloud Storage превышена. Если вы используете бесплатный уровень, перейдите на платный план. Если у вас платный план, обратитесь в службу поддержки Firebase.
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 Array. Аргумент, передаваемый в putString() должен быть необработанной строкой Base64 или Base64URL .
storage/no-default-bucket В свойстве storageBucket вашей конфигурации не установлено ни одного сегмента.
storage/cannot-slice-blob Обычно возникает, когда локальный файл был изменен (удален, сохранен снова и т. д.). Попробуйте загрузить еще раз, убедившись, что файл не изменился.
storage/server-file-wrong-size Размер файла на клиенте не соответствует размеру файла, полученного сервером. Попробуйте загрузить еще раз.