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. 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 l'azione, ma continui a riscontrare 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 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 gestirlo, ecco un elenco completo di tutte quali errori vengono segnalati dal cliente e 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 sottoscritto 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. 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à 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>