Gestire gli errori di Cloud Storage su Flutter

A volte, durante la creazione di un'app, le cose non vanno come previsto e si verifica un errore.

In caso di dubbi, intercetta l'eccezione generata dalla funzione e leggi il messaggio di errore.

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

Gestire i messaggi di errore

Esistono diversi motivi per cui potrebbero verificarsi errori, tra cui il file non esistente, l'utente che non dispone dell'autorizzazione per accedere al file desiderato o l'utente che annulla il caricamento del file.

Per diagnosticare correttamente il problema e gestire l'errore, ecco un elenco completo di tutti gli errori che il nostro client genererà e come si sono verificati.

Codice Descrizione
storage/unknown Si è verificato un errore sconosciuto.
storage/object-not-found Non esiste alcun oggetto nel riferimento desiderato.
storage/bucket-not-found Nessun bucket è configurato per Cloud Storage
storage/project-not-found Nessun progetto è configurato per Cloud Storage
storage/quota-exceeded La quota del bucket Cloud Storage è stata superata. Se hai il piano tariffario Spark, valuta l'upgrade al piano tariffario Blaze con pagamento a consumo. Se hai già scelto il piano tariffario Blaze, contatta l'assistenza Firebase.

Importante: a partire dal 1° ottobre 2025, il piano tariffario Blaze sarà obbligatorio per utilizzare Cloud Storage, anche i bucket predefiniti.
storage/unauthenticated L'utente non è autenticato. Esegui l'autenticazione e riprova.
storage/unauthorized L'utente non è autorizzato a eseguire l'azione desiderata. Controlla le regole di sicurezza per assicurarti che siano corrette.
storage/retry-limit-exceeded È stato superato il limite di tempo massimo per un'operazione (caricamento, download, eliminazione e così via). Prova a caricarlo di nuovo.
storage/invalid-checksum Il file sul client non corrisponde al checksum del file ricevuto dal server. Prova a caricarlo di nuovo.
storage/canceled L'utente ha annullato l'operazione.
storage/invalid-event-name Nome dell'evento fornito non valido. Deve essere uno dei seguenti valori: [running, progress, pause]
storage/invalid-url L'URL fornito a refFromURL() non è valido. Deve essere nel formato: gs://bucket/object o https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>
storage/invalid-argument L'argomento passato a put() deve essere un array File, Blob o UInt8. L'argomento passato a putString() deve essere una stringa non elaborata, Base64 o Base64URL.
storage/no-default-bucket Nessun bucket è stato impostato nella proprietà storageBucket della configurazione.
storage/cannot-slice-blob Si verifica spesso quando il file locale è stato modificato (eliminato, salvato di nuovo e così via). Prova a caricare di nuovo il file dopo aver verificato che non sia stato modificato.
storage/server-file-wrong-size Il file sul client non corrisponde alle dimensioni del file ricevuto dal server. Prova a caricarlo di nuovo.