Manejar errores para Cloud Storage en Flutter

A veces, cuando estás creando una aplicación, las cosas no salen según lo planeado y se produce un error.

En caso de duda, detecte la excepción lanzada por la función y vea qué dice el mensaje de error.

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}");
}

Manejar mensajes de error

Hay varias razones por las que pueden ocurrir errores, incluido el archivo que no existe, que el usuario no tenga permiso para acceder al archivo deseado o que el usuario cancele la carga del archivo.

Para diagnosticar adecuadamente el problema y manejar el error, aquí hay una lista completa de todos los errores que generará nuestro cliente y cómo ocurrieron.

Código Descripción
storage/unknown Un error desconocido ocurrió.
storage/object-not-found No existe ningún objeto en la referencia deseada.
storage/bucket-not-found No hay ningún depósito configurado para Cloud Storage
storage/project-not-found No hay ningún proyecto configurado para Cloud Storage
storage/quota-exceeded Se superó la cuota en su depósito de Cloud Storage. Si estás en el nivel sin costo, actualiza a un plan pago. Si tienes un plan pago, comunícate con el soporte de Firebase.
storage/unauthenticated El usuario no está autenticado, autentíquese e inténtelo nuevamente.
storage/unauthorized El usuario no está autorizado a realizar la acción deseada, verifique sus reglas de seguridad para asegurarse de que sean correctas.
storage/retry-limit-exceeded Se ha superado el tiempo máximo de una operación (carga, descarga, eliminación, etc.). Intente cargar nuevamente.
storage/invalid-checksum El archivo del cliente no coincide con la suma de comprobación del archivo recibido por el servidor. Intente cargar nuevamente.
storage/canceled El usuario canceló la operación.
storage/invalid-event-name Se proporcionó un nombre de evento no válido. Debe ser uno de [ running , progress , pause ]
storage/invalid-url URL no válida proporcionada a refFromURL() . Debe tener el formato: gs://bucket/object o https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>
storage/invalid-argument El argumento pasado a put() debe ser File , Blob o UInt8 Array. El argumento pasado a putString() debe ser una cadena sin formato, Base64 o Base64URL .
storage/no-default-bucket No se ha configurado ningún depósito en la propiedad storageBucket de su configuración.
storage/cannot-slice-blob Suele ocurrir cuando el archivo local ha cambiado (eliminado, guardado nuevamente, etc.). Intente cargarlo nuevamente después de verificar que el archivo no haya cambiado.
storage/server-file-wrong-size El archivo del cliente no coincide con el tamaño del archivo recibido por el servidor. Intente cargar nuevamente.