Gérer les erreurs pour Cloud Storage sur Flutter

Lorsque vous créez une application, il arrive que les choses ne se passent pas comme prévu et qu'une erreur se produise.

En cas de doute, interceptez l'exception générée par la fonction et examinez 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

Plusieurs raisons peuvent expliquer l'apparition d'erreurs, y compris l'absence du fichier, l'absence d'autorisation de l'utilisateur pour accéder au fichier souhaité ou l'annulation de l'importation du fichier par l'utilisateur.

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

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 Cloud Storage a été dépassé. Si vous avez opté pour le forfait Spark, envisagez de passer au forfait Blaze. Si vous disposez déjà du forfait Blaze, contactez l'assistance Firebase.

Important: À partir du 1er octobre 2025, le forfait Blaze sera obligatoire pour utiliser Cloud Storage, même pour les buckets par défaut.
storage/unauthenticated L'utilisateur n'est pas authentifié. Veuillez vous authentifier, puis réessayer.
storage/unauthorized L'utilisateur n'est pas autorisé à effectuer l'action souhaitée. Vérifiez vos règles de sécurité pour vous assurer qu'elles sont correctes.
storage/retry-limit-exceeded La limite de temps maximale pour 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'une des valeurs suivantes : [running, progress, pause]
storage/invalid-url URL non valide fournie à refFromURL(). 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é de 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 de l'importer.