Gérer les erreurs pour Cloud Storage sur Flutter

Parfois, lorsque vous créez une application, les choses ne se passent pas comme prévu et une erreur se produit.

En cas de doute, interceptez l'exception générée par la fonction et lisez le message d'erreur.

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

Gérer les messages d'erreur

Des erreurs peuvent se produire pour plusieurs raisons, par exemple si le fichier n'existe pas, si l'utilisateur n'est pas autorisé à accéder au fichier souhaité ou si l'utilisateur annule l'importation du fichier.

Pour diagnostiquer correctement le problème et gérer l'erreur, voici la liste complète de toutes les erreurs que notre client peut générer et de la manière dont elles se sont produites.

Code Description
storage/unknown Une erreur inconnue s'est produite.
storage/object-not-found Aucun objet n'existe à la référence souhaitée.
storage/bucket-not-found Aucun bucket n'est configuré pour Cloud Storage
storage/project-not-found Aucun projet n'est configuré pour Cloud Storage
storage/quota-exceeded Le quota de votre bucket a été dépassé. Cloud Storage for Firebase nécessite le forfait Blaze avec paiement à l'usage. Si vous recevez cette erreur sur un projet avec le forfait Spark, vous devez passer au forfait Blaze pour récupérer l'accès. Pour en savoir plus, consultez nos questions fréquentes.
storage/unauthenticated L'utilisateur n'est pas authentifié. Veuillez vous authentifier et réessayer.
storage/unauthorized L'utilisateur n'est pas autorisé à effectuer l'action souhaitée. Vérifiez que vos règles de sécurité sont correctes.
storage/retry-limit-exceeded La durée maximale d'une opération (importation, téléchargement, suppression, etc.) a été dépassée. Réessayez d'importer une vidéo.
storage/invalid-checksum Le fichier sur le client ne correspond pas à la somme de contrôle du fichier reçu par le serveur. Réessayez d'importer une vidéo.
storage/canceled L'utilisateur a annulé l'opération.
storage/invalid-event-name Le nom d'événement fourni n'est pas valide. Doit être l'un des suivants : [running, progress, pause]
storage/invalid-url L'URL fournie à refFromURL() n'est pas valide. Doit être au format gs://bucket/object ou https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>.
storage/invalid-argument L'argument transmis à put() doit être un tableau File, Blob ou UInt8. L'argument transmis à putString() doit être une chaîne brute, Base64 ou Base64URL.
storage/no-default-bucket Aucun bucket n'a été défini dans la propriété storageBucket de votre configuration.
storage/cannot-slice-blob Cela se produit généralement lorsque le fichier local a été modifié (supprimé, enregistré à nouveau, etc.). Réessayez d'importer le fichier après avoir vérifié qu'il n'a pas été modifié.
storage/server-file-wrong-size La taille du fichier sur le client ne correspond pas à celle du fichier reçu par le serveur. Réessayez d'importer une vidéo.