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. Ces 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 que vous avez des règles de sécurité Cloud Storage qui autorisent votre action, mais que vous avez encore du mal à corriger l'erreur, visitez notre page d'assistance et faites-nous savoir comment nous pouvons vous aider.
Gérer les messages d'erreur
Il existe un certain nombre de raisons pour lesquelles des erreurs peuvent se produire, y compris le fait que le fichier n'existe pas, que l'utilisateur n'a pas l'autorisation d'accéder au fichier souhaité ou que l'utilisateur 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 va générer, et comment 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 | 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 êtes sur le niveau gratuit, passez à un plan payant. Si vous avez 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 | Le délai maximum d'une opération (téléchargement, téléchargement, suppression, etc.) a été dépassé. 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 de télécharger à nouveau. |
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 exception IllegalArgumentException
. 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>