Gérer les erreurs pour Cloud Storage sur Android

Parfois, les choses ne se passent pas comme prévu et une erreur se produit.

En cas de doute, vérifiez l'erreur renvoyée et voyez ce que dit le message d'erreur. Le code suivant montre une implémentation de gestionnaire d'erreurs personnalisé qui inspecte le code d'erreur et le message d'erreur renvoyés par Cloud Storage. De tels gestionnaires d'erreurs peuvent être ajoutés à divers objets utilisés dans l'API Cloud Storage (par exemple, UploadTask et 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
    }
}

Si vous avez vérifié le message d'erreur et disposez de règles de sécurité du stockage cloud qui autorisent votre action, mais que vous avez toujours du mal à corriger l'erreur, visitez notre page d'assistance et dites-nous comment nous pouvons vous aider.

Gérer les messages d'erreur

Il existe un certain nombre de raisons pour lesquelles des erreurs peuvent survenir, notamment le fichier qui n'existe pas, l'utilisateur qui n'est pas autorisé à accéder au fichier souhaité ou l'utilisateur qui annule le téléchargement du fichier.

Pour diagnostiquer correctement le problème et gérer l'erreur, voici une liste complète de toutes les erreurs que notre client soulèvera et comment elles peuvent se produire. Les codes d'erreur de ce tableau sont définis dans la classe StorageException sous forme de constantes entières.

Code Raison
ERROR_UNKNOWN Une erreur inconnue est survenue.
ERROR_OBJECT_NOT_FOUND Aucun objet n'existe à la référence souhaitée.
ERROR_BUCKET_NOT_FOUND Aucun bucket n'est configuré pour Cloud Storage
ERROR_PROJECT_NOT_FOUND Aucun projet n'est configuré pour Cloud Storage
ERROR_QUOTA_EXCEEDED Le quota de votre bucket Cloud Storage a été dépassé. Si vous bénéficiez du niveau gratuit, passez à un forfait payant. Si vous disposez d'un forfait payant, contactez l'assistance Firebase.
ERROR_NOT_AUTHENTICATED L'utilisateur n'est pas authentifié, veuillez vous authentifier et réessayer.
ERROR_NOT_AUTHORIZED L'utilisateur n'est pas autorisé à effectuer l'action souhaitée, vérifiez vos règles pour vous assurer qu'elles sont correctes.
ERROR_RETRY_LIMIT_EXCEEDED La durée maximale d'une opération (téléchargement, téléchargement, suppression, etc.) a été dépassée. Essayer à nouveau.
ERROR_INVALID_CHECKSUM Le fichier sur le client ne correspond pas à la somme de contrôle du fichier reçu par le serveur. Essayez à nouveau de télécharger.
ERROR_CANCELED L'utilisateur a annulé l'opération.

De plus, tenter d’appeler getReferenceFromUrl() avec une URL non valide entraînera la levée d’une IllegalArgumentException . L'argument de la méthode ci-dessus doit être de la forme gs://bucket/object ou https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>