Solucionar erros do Cloud Storage no Flutter

Às vezes, quando você cria um app, as coisas não saem como planejado e um erro ocorre.

Em caso de dúvida, identifique a exceção gerada pela função e veja o que a mensagem de erro diz.

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}");
}

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 o problema corretamente e tratar o erro, veja uma lista completa de todos os erros que são informados por nosso cliente e como eles ocorrem.

Código Descrição
storage/unknown Ocorreu um erro desconhecido.
storage/object-not-found Nenhum objeto na referência desejada.
storage/bucket-not-found Nenhum bucket configurado para o Cloud Storage.
storage/project-not-found Nenhum projeto configurado para o Cloud Storage.
storage/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.
storage/unauthenticated O usuário não está autenticado. Faça a autenticação e tente novamente.
storage/unauthorized O usuário não está autorizado a executar a ação desejada. Verifique se as regras de segurança estão corretas.
storage/retry-limit-exceeded O limite de tempo em uma operação (upload, download, exclusão etc.) foi excedido. Envie novamente.
storage/invalid-checksum O arquivo no cliente não corresponde à soma de verificação do arquivo recebido pelo servidor. Envie novamente.
storage/canceled O usuário cancelou a operação.
storage/invalid-event-name Nome inválido do evento fornecido. Precisa ser uma destas opções: [running, progress, pause]
storage/invalid-url URL inválido fornecido para refFromURL(). Precisa estar no formato gs://bucket/object ou https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>.
storage/invalid-argument O argumento transmitido a put() precisa ser File, Blob ou matriz UInt8. O argumento transmitido a putString() precisa ser uma string bruta, Base64 ou Base64URL.
storage/no-default-bucket Nenhum bucket foi definido na propriedade storageBucket da configuração.
storage/cannot-slice-blob Em geral, isso ocorre normalmente quando o arquivo local é alterado (excluído, salvo novamente etc.). Tente fazer o upload novamente após verificar que 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. Envie novamente.