Lidar com erros do Cloud Storage no Flutter

Às vezes, quando você está criando um aplicativo, as coisas não saem como planejado e ocorre um erro!

Em caso de dúvida, capture a exceção lançada pela função e veja o que a mensagem de erro tem a dizer.

final storageRef = FirebaseStorage.instance.ref().child("files/uid");
try {
  final listResult = await storageRef.listAll();
} on FirebaseException catch (e) {
  // Caught an exception from Firebase.
  print("Failed with error '${e.code}': ${e.message}");
}

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 ocorreram.

Código Descrição
storage/unknown Ocorreu um erro desconhecido.
storage/object-not-found Nenhum objeto existe na referência desejada.
storage/bucket-not-found Nenhum bucket está configurado para o Cloud Storage
storage/project-not-found Nenhum projeto está configurado para o Cloud Storage
storage/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.
storage/unauthenticated O usuário não está autenticado. Autentique-se e tente novamente.
storage/unauthorized O usuário não está autorizado a realizar a ação desejada, verifique suas regras de segurança para garantir que estão corretas.
storage/retry-limit-exceeded O limite máximo de tempo para uma operação (upload, download, exclusão, etc.) foi excedido. Tente fazer upload novamente.
storage/invalid-checksum O arquivo no cliente não corresponde à soma de verificação do arquivo recebido pelo servidor. Tente fazer upload novamente.
storage/canceled O usuário cancelou a operação.
storage/invalid-event-name Nome de evento inválido fornecido. Deve ser um de [ running , progress , pause ]
storage/invalid-url URL inválido fornecido para refFromURL() . Deve estar no formato: gs://bucket/object ou https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>
storage/invalid-argument O argumento passado para put() deve ser File , Blob ou UInt8 Array. O argumento passado para putString() deve ser uma string bruta, Base64 ou Base64URL .
storage/no-default-bucket Nenhum bucket foi definido na propriedade storageBucket da sua configuração.
storage/cannot-slice-blob Geralmente ocorre quando o arquivo local foi alterado (excluído, salvo novamente, etc.). Tente fazer upload novamente depois de verificar se o arquivo não foi alterado.
storage/server-file-wrong-size O arquivo no cliente não corresponde ao tamanho do arquivo recebido pelo servidor. Tente fazer upload novamente.