Às vezes as coisas não saem como planejado e ocorre um erro.
Na dúvida, verifique o erro retornado e veja o que diz a mensagem de erro. O código a seguir mostra uma implementação de gerenciador de erros personalizado que inspeciona o código e a mensagem de erro retornados pelo Cloud Storage. Esses manipuladores 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ê verificou a mensagem de erro e possui regras de segurança de armazenamento em nuvem que permitem sua ação, mas ainda está lutando para corrigir o erro, visite nossa página de suporte e diga-nos como podemos ajudar.
Lidar com mensagens de erro
Existem vários motivos pelos quais podem ocorrer erros, incluindo a inexistência do arquivo, o usuário não ter permissão para acessar o arquivo desejado ou o usuário cancelar o upload do arquivo.
Para diagnosticar adequadamente o problema e lidar com o erro, aqui está uma lista completa de todos os erros que nosso cliente irá levantar e como eles podem ocorrer. Os códigos de erro nesta tabela são definidos na classe StorageException
como constantes inteiras.
Código | Razão |
---|---|
ERROR_UNKNOWN | Ocorreu um erro desconhecido. |
ERROR_OBJECT_NOT_FOUND | Nenhum objeto existe na referência desejada. |
ERROR_BUCKET_NOT_FOUND | Nenhum bucket está configurado para o Cloud Storage |
ERROR_PROJECT_NOT_FOUND | Nenhum projeto está configurado para o Cloud Storage |
ERROR_QUOTA_EXCEEDED | A cota do seu bucket do Cloud Storage foi excedida. Se você estiver no nível gratuito, atualize para um plano pago. Se você estiver em um plano pago, entre em contato com o suporte do Firebase. |
ERROR_NOT_AUTHENTICATED | O usuário não está autenticado. Autentique-se e tente novamente. |
ERROR_NOT_AUTHORIZED | O usuário não está autorizado a realizar a ação desejada, verifique suas regras para garantir que estão corretas. |
ERROR_RETRY_LIMIT_EXCEEDED | O limite máximo de tempo para 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. Tente fazer upload novamente. |
ERROR_CANCELED | O usuário cancelou a operação. |
Além disso, tentar chamar getReferenceFromUrl()
com um URL inválido resultará no lançamento de uma IllegalArgumentException
. O argumento para o método acima deve estar no formato gs://bucket/object
ou https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>