Gérer les erreurs pour Cloud Storage sur Android

Il arrive que les choses ne se passent pas comme prévu et qu'une erreur se produise.

En cas de doute, vérifiez l'erreur renvoyée et 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. Ces gestionnaires d'erreurs peuvent être ajoutés à différents objets utilisés dans l'API Cloud Storage (par exemple, UploadTask et 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
    }
}

Si vous avez vérifié le message d'erreur et que vous disposez de Cloud Storage Security Rules qui autorisent votre action, mais que vous ne parvenez toujours pas à résoudre l'erreur, consultez notre page d'assistance et indiquez-nous comment nous pouvons vous aider.

Gérer les messages d'erreur

Plusieurs raisons peuvent expliquer la survenue d'erreurs, y compris l'inexistence du fichier, le manque d'autorisation de l'utilisateur pour accéder au fichier souhaité ou l'annulation de l'importation du fichier par l'utilisateur.

Pour diagnostiquer correctement le problème et gérer l'erreur, voici la liste complète de toutes les erreurs que notre client générera, ainsi que la manière dont elles peuvent se produire. Les codes d'erreur de ce tableau sont définis dans la classe StorageException en tant que constantes entières.

Code Motif
ERROR_UNKNOWN Une erreur inconnue s'est produite.
ERROR_OBJECT_NOT_FOUND Aucun objet n'existe à la référence spécifié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 Cloud Storage bucket a été dépassé. Si vous disposez du forfait Spark, envisagez de passer au forfait Blaze avec paiement à l'usage. Si vous disposez déjà du forfait Blaze, contactez l'assistance Firebase.

Important : À partir du 3 février 2026, le forfait Blaze sera obligatoire pour utiliser Cloud Storage, même pour les buckets par défaut.
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 demandée. Vérifiez que vos règles sont correctes.
ERROR_RETRY_LIMIT_EXCEEDED Le délai maximal d'une opération (importation, téléchargement, suppression, etc.) a été dépassé. Réessayez.
ERROR_INVALID_CHECKSUM Le fichier sur le client ne correspond pas à la somme de contrôle du fichier reçu par le serveur. Réessayez d'importer une vidéo.
ERROR_CANCELED L'utilisateur a annulé l'opération.

De plus, si vous tentez d'appeler getReferenceFromUrl() avec une URL non valide, une IllegalArgumentException sera générée. L'argument de la méthode ci-dessus doit être au format gs://bucket/object ou https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>