Tratar erros do Cloud Storage no Android
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Às vezes, as coisas não saem como planejado e um erro ocorre.
Em caso de dúvida, verifique o erro retornado e veja o que diz a mensagem.
O código a seguir mostra uma implementação personalizada do gerenciador de erros que inspeciona o código do erro e a mensagem de erro retornados pelo Cloud Storage. Esses gerenciadores de erros podem ser adicionados a vários objetos usados na API Cloud Storage (por exemplo, UploadTask
e 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
}
}
Se você verificar a mensagem de erro e tiver Cloud Storage Security Rules que permitam sua ação, mas ainda está com dificuldades para corrigir o erro, acesse nossa página de suporte e diga como podemos ajudar.
Solucionar mensagens de erro
Há diversos motivos pelos quais erros podem ocorrer, como um arquivo
não existente, usuário sem permissão para acessar o arquivo desejado ou
cancelamento do upload do arquivo por parte do usuário.
Para diagnosticar corretamente o problema e tratar o erro, veja a seguir uma lista completa de todos
os erros informados por nosso cliente e como eles ocorrem. Os códigos de erro nesta
tabela são definidos na classe StorageException
como constantes inteiras.
Código |
Motivo |
ERROR_UNKNOWN |
Ocorreu um erro desconhecido. |
ERROR_OBJECT_NOT_FOUND |
Nenhum objeto na referência especificada. |
ERROR_BUCKET_NOT_FOUND |
Não há buckets configurados para o Cloud Storage |
ERROR_PROJECT_NOT_FOUND |
Não há projetos configurados para o Cloud Storage |
ERROR_QUOTA_EXCEEDED |
A cota do seu bucket do Cloud Storage foi excedida. Se você estiver usando o plano de preços do Spark, considere fazer upgrade para o plano de preços do Blaze de pagamento por uso. Se você já estiver usando o plano de preços do Blaze, entre em contato com o suporte do Firebase.
Importante: a partir de 1º de outubro de 2025, o plano de preços do Blaze será obrigatório para usar Cloud Storage, mesmo em buckets padrão. |
ERROR_NOT_AUTHENTICATED |
O usuário não está autenticado. Faça a autenticação e tente novamente. |
ERROR_NOT_AUTHORIZED |
O usuário não está autorizado a executar a ação solicitada. Verifique se suas regras estão corretas. |
ERROR_RETRY_LIMIT_EXCEEDED |
O limite de tempo em uma operação (upload, download, exclusão etc.) foi excedido. Tente novamente. |
ERROR_INVALID_CHECKSUM |
O arquivo no cliente não corresponde à soma de verificação do arquivo recebido pelo servidor. Envie novamente. |
ERROR_CANCELED |
O usuário cancelou a operação. |
Além disso, se você tentar chamar getReferenceFromUrl()
com um URL inválido,
uma IllegalArgumentException
será gerada. O argumento para
o método acima precisa ter o formato gs://bucket/object
ou
https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>
.
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-08-22 UTC.
[null,null,["Última atualização 2025-08-22 UTC."],[],[],null,["\u003cbr /\u003e\n\nSometimes things don't go as planned and an error occurs.\n\nWhen in doubt, check the error returned and see what the error message says.\nThe following code shows a custom error handler implementation that inspects\nthe error code and error message returned by Cloud Storage. Such error\nhandlers can be added to various objects used in the Cloud Storage API (for\nexample, `UploadTask` and `FileDownloadTask`). \n\nKotlin \n\n```kotlin\ninternal inner class MyFailureListener : OnFailureListener {\n override fun onFailure(exception: Exception) {\n val errorCode = (exception as StorageException).errorCode\n val errorMessage = exception.message\n // test the errorCode and errorMessage, and handle accordingly\n }\n}https://github.com/firebase/snippets-android/blob/391c1646eacf44d2aab3f76bcfa60dfc6c14acf1/storage/app/src/main/java/com/google/firebase/referencecode/storage/kotlin/StorageActivity.kt#L492-L498\n```\n\nJava \n\n```java\nclass MyFailureListener implements OnFailureListener {\n @Override\n public void onFailure(@NonNull Exception exception) {\n int errorCode = ((StorageException) exception).getErrorCode();\n String errorMessage = exception.getMessage();\n // test the errorCode and errorMessage, and handle accordingly\n }\n}https://github.com/firebase/snippets-android/blob/391c1646eacf44d2aab3f76bcfa60dfc6c14acf1/storage/app/src/main/java/com/google/firebase/referencecode/storage/StorageActivity.java#L618-L625\n```\n\nIf you've checked the error message and have Cloud Storage Security Rules that allow your\naction, but are still struggling to fix the error, visit our\n[Support page](/support) and let us know how we can help.\n\nHandle Error Messages\n\nThere are a number of reasons why errors may occur, including the file\nnot existing, the user not having permission to access the desired file, or the\nuser cancelling the file upload.\n\nTo properly diagnose the issue and handle the error, here is a full list of all\nthe errors our client will raise, and how they can occur. Error codes in this\ntable are defined in the `StorageException` class as integer constants.\n\n| Code | Reason |\n|------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `ERROR_UNKNOWN` | An unknown error occurred. |\n| `ERROR_OBJECT_NOT_FOUND` | No object exists at the specified reference. |\n| `ERROR_BUCKET_NOT_FOUND` | No bucket is configured for Cloud Storage |\n| `ERROR_PROJECT_NOT_FOUND` | No project is configured for Cloud Storage |\n| `ERROR_QUOTA_EXCEEDED` | Quota on your Cloud Storage bucket has been exceeded. If you're on the Spark pricing plan, consider upgrading to the [pay-as-you-go Blaze pricing plan](/pricing). If you're already on the Blaze pricing plan, reach out to Firebase Support. **Important** : Starting October 1, 2025, the [Blaze pricing plan will be *required* to use Cloud Storage](/docs/storage/faqs-storage-changes-announced-sept-2024), even default buckets. |\n| `ERROR_NOT_AUTHENTICATED` | User is unauthenticated, please authenticate and try again. |\n| `ERROR_NOT_AUTHORIZED` | User is not authorized to perform the requested action, check your rules to ensure they are correct. |\n| `ERROR_RETRY_LIMIT_EXCEEDED` | The maximum time limit on an operation (upload, download, delete, etc.) has been excceded. Try again. |\n| `ERROR_INVALID_CHECKSUM` | File on the client does not match the checksum of the file received by the server. Try uploading again. |\n| `ERROR_CANCELED` | User canceled the operation. |\n\nAdditionally, attempting to call `getReferenceFromUrl()` with an invalid URL\nwill result in an `IllegalArgumentException` from being thrown. The argument to\nthe above method must be of the form `gs://bucket/object` or\n`https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=\u003cTOKEN\u003e`"]]