Gestisci gli errori per Cloud Storage su Android

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

In caso di dubbi, controlla l'errore restituito e guarda cosa dice il messaggio di errore. Il codice seguente mostra un'implementazione del gestore errori personalizzato che controlla il codice di errore e il messaggio di errore restituiti da Cloud Storage. Tali 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 disponi di regole di sicurezza di Cloud Storage che consentono la tua azione, ma hai ancora difficoltà a correggere l'errore, visita la nostra pagina di supporto e facci sapere come possiamo aiutarti.

Gestire i messaggi di errore

Esistono diversi motivi per cui possono 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 segnalati dal nostro cliente e 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 desiderato.
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 sul tuo bucket Cloud Storage è stata superata. Se utilizzi il piano senza costi, passa a un piano a pagamento. Se hai un piano a pagamento, contatta il supporto Firebase.
ERROR_NOT_AUTHENTICATED L'utente non è autenticato, autenticati e riprova.
ERROR_NOT_AUTHORIZED L'utente non è autorizzato a eseguire l'azione desiderata, 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, ecc.). Riprova.
ERROR_INVALID_CHECKSUM Il file sul client non corrisponde al checksum del file ricevuto dal server. Prova a caricare di nuovo.
ERROR_CANCELED L'utente ha annullato l'operazione.

Inoltre, il tentativo di chiamare getReferenceFromUrl() con un URL non valido comporterà la generazione di 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>