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 del gestore degli errori personalizzato che controlla il codice di errore e il messaggio di errore restituiti da Cloud Storage. Questi gestori degli errori possono essere aggiunti a vari oggetti utilizzati nell'API Cloud Storage (ad esempio UploadTask e FileDownloadTask).

Kotlin

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 disponi di Cloud Storage Security Rules che consentono la tua azione, ma hai ancora difficoltà a correggere l'errore, visita la nostra pagina di assistenza e facci sapere come possiamo aiutarti.

Gestisci i messaggi di errore

Gli errori possono verificarsi per una serie di motivi, tra cui l'inesistenza del file, la mancanza di autorizzazione dell'utente ad accedere al file desiderato o l'annullamento del caricamento del file da parte dell'utente.

Per diagnosticare correttamente il problema e gestire l'errore, di seguito è riportato un elenco completo di tutti gli errori che il nostro client genererà 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 Nessun oggetto esiste nel 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 tuo bucket è stata superata. Cloud Storage for Firebase richiede il piano tariffario Blaze con pagamento a consumo. Se ricevi questo errore in un progetto con piano tariffario Spark, devi eseguire l'upgrade al piano tariffario Blaze per riottenere l'accesso. Per maggiori dettagli, consulta le nostre domande frequenti.
ERROR_NOT_AUTHENTICATED L'utente non è autenticato. Autenticati 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 Il limite di tempo massimo per un'operazione (caricamento, download, eliminazione e così via) è stato superato. 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 comporterà la generazione di un IllegalArgumentException. L'argomento del metodo precedente deve essere nel formato gs://bucket/object o https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>