Gestire gli errori di 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 scopri cosa dice. Il codice seguente mostra l'implementazione di un gestore di errori personalizzato che esamina il codice e il messaggio di errore restituiti da Cloud Storage. Questo errore è possibile aggiungere gestori a vari oggetti utilizzati nell'API Cloud Storage (ad 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 Cloud Storage Security Rules che consentono la ma continuano ad avere difficoltà a correggerlo, visita la nostra Pagina di assistenza e facci sapere come possiamo aiutarti.

Gestire i messaggi di errore

Esistono diversi motivi per cui possono verificarsi errori, tra cui il file non esiste, l'utente non dispone dell'autorizzazione per accedere al file desiderato o che l'utente annulla 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. Codici di errore in questo sono definite 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 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 del bucket Cloud Storage è stata superata. Se disponi del livello senza costi aggiuntivi, esegui l'upgrade a un piano a pagamento. Se hai un piano a pagamento, contatta l'assistenza Firebase.
ERROR_NOT_AUTHENTICATED Utente non autenticato, esegui l'autenticazione 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 e così via). 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à il lancio di IllegalArgumentException. L'argomento di il metodo sopra indicato deve essere nel formato gs://bucket/object oppure https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>