À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+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 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 |
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>
.