Gestire gli errori di Cloud Storage su Android

A volte le cose non vanno come previsto e si verifica un errore.

In caso di dubbio, controlla l'errore restituito e leggi il messaggio di errore. Il seguente codice mostra un'implementazione di gestore degli errori personalizzato che controlla il codice e il messaggio di errore restituiti da Cloud Storage. Questi gestori di errori possono essere aggiunti a vari oggetti utilizzati nell'API Cloud Storage (ad esempio UploadTask e FileDownloadTask).

Kotlin+KTX

internal inner class MyFailureListener : OnFailureListener {
    override fun onFailure(exception: Exception) {
        val errorCode = (exception as StorageException).errorCode
        val errorMessage = exception.message
        // test the errorCode and errorMessage, and handle accordingly
    }
}

Java

class MyFailureListener implements OnFailureListener {
    @Override
    public void onFailure(@NonNull Exception exception) {
        int errorCode = ((StorageException) exception).getErrorCode();
        String errorMessage = exception.getMessage();
        // test the errorCode and errorMessage, and handle accordingly
    }
}

Se hai controllato il messaggio di errore e visualizzi Cloud Storage Security Rules che consentono la tua azione, ma continui ad avere difficoltà a correggere l'errore, visita la nostra pagina di assistenza e facci sapere come possiamo aiutarti.

Gestire i messaggi di errore

Esistono diversi motivi per cui potrebbero verificarsi errori, tra cui il fatto che il file non esista, che l'utente non abbia l'autorizzazione per accedere al file desiderato o che l'utente abbia annullato il caricamento del file.

Per diagnosticare correttamente il problema e gestire l'errore, di seguito è riportato un elenco completo di tutti gli errori che il nostro client solleva e di come possono verificarsi. I codici di errore in questa tabella sono definiti nella classe StorageException come costanti intere.

Codice Motivo
ERROR_UNKNOWN Si è verificato un errore sconosciuto.
ERROR_OBJECT_NOT_FOUND Non esiste alcun oggetto al riferimento specificato.
ERROR_BUCKET_NOT_FOUND Nessun bucket è configurato per Cloud Storage
ERROR_PROJECT_NOT_FOUND Nessun progetto configurato per Cloud Storage
ERROR_QUOTA_EXCEEDED La quota del bucket Cloud Storage è stata superata. Se hai sottoscritto un piano tariffario Spark, valuta la possibilità di eseguire l'upgrade al piano tariffario di Blaze con pagamento a consumo. Se utilizzi già 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.
ERROR_NOT_AUTHENTICATED L'utente non è autenticato. Effettua l'autenticazione e riprova.
ERROR_NOT_AUTHORIZED L'utente non è autorizzato a eseguire l'azione richiesta. Controlla le regole per assicurarti che siano corrette.
ERROR_RETRY_LIMIT_EXCEEDED È stato superato il limite di tempo massimo per un'operazione (caricamento, download, eliminazione e così via). Riprova.
ERROR_INVALID_CHECKSUM Il file sul client non corrisponde al checksum del file ricevuto dal server. Riprova a caricare il video.
ERROR_CANCELED L'utente ha annullato l'operazione.

Inoltre, il tentativo di chiamare getReferenceFromUrl() con un URL non valido causerà l'emissione di un IllegalArgumentException. L'argomento del metodo riportato sopra deve essere del tipo gs://bucket/object o https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>