À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 de erro e a mensagem retornados pelo Cloud Storage. Esses gerenciadores
de erros podem ser adicionados a vários objetos usados na API Cloud Storage, como
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 tem regras de segurança do Cloud Storage que permitem sua ação, mas ainda está com dificuldades para corrigir o erro, acesse nossa página de suporte e informe como podemos ajudar.
Tratar 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 desejada. |
ERROR_BUCKET_NOT_FOUND |
Nenhum bucket configurado para o Cloud Storage. |
ERROR_PROJECT_NOT_FOUND |
Nenhum projeto configurado para o Cloud Storage. |
ERROR_QUOTA_EXCEEDED |
A cota do bucket do Cloud Storage foi excedida. Se você estiver no nível sem custo financeiro, faça upgrade para um plano pago. Se você já usa um plano pago, entre em contato com o suporte do Firebase. |
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 desejada. Verifique suas regras para garantir que elas estejam 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>
.