Obsługa błędów Cloud Storage w Flutter

Czasami podczas tworzenia aplikacji nie wszystko idzie zgodnie z planem i pojawia się błąd.

W razie wątpliwości przechwyć wyjątek zgłoszony przez funkcję i sprawdź, co zawiera komunikat o błędzie.

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

Obsługa komunikatów o błędach

Błędy mogą wystąpić z wielu powodów, np. gdy plik nie istnieje, użytkownik nie ma uprawnień dostępu do żądanego pliku lub użytkownik anulował przesyłanie pliku.

Aby prawidłowo zdiagnozować problem i obsłużyć błąd, zapoznaj się z pełną listą wszystkich błędów, które może zgłosić nasz klient, oraz sposobów ich wystąpienia.

Kod Opis
storage/unknown Wystąpił nieznany błąd.
storage/object-not-found W miejscu, do którego prowadzi odwołanie, nie ma żadnego obiektu.
storage/bucket-not-found Nie skonfigurowano zasobnika dla Cloud Storage
storage/project-not-found Brak skonfigurowanego projektu dla Cloud Storage
storage/quota-exceeded Przekroczono limit miejsca w zasobniku. Cloud Storage for Firebase wymaga abonamentu Blaze z płatnością według wykorzystania. Jeśli ten błąd występuje w projekcie z abonamentem Spark, musisz przejść na abonament Blaze, aby odzyskać dostęp. Szczegółowe informacje znajdziesz w najczęstszych pytaniach.
storage/unauthenticated Użytkownik nie jest uwierzytelniony. Uwierzytelnij się i spróbuj ponownie.
storage/unauthorized Użytkownik nie ma uprawnień do wykonania żądanej czynności. Sprawdź, czy reguły zabezpieczeń są prawidłowe.
storage/retry-limit-exceeded Przekroczono maksymalny limit czasu operacji (przesyłania, pobierania, usuwania itp.). Spróbuj przesłać jeszcze raz.
storage/invalid-checksum Plik na kliencie nie jest zgodny z sumą kontrolną pliku otrzymanego przez serwer. Spróbuj przesłać jeszcze raz.
storage/canceled Operacja anulowana przez użytkownika.
storage/invalid-event-name Podano nieprawidłową nazwę zdarzenia. Musi być jedną z tych wartości: [running, progress, pause]
storage/invalid-url Podano nieprawidłowy adres URL dla: refFromURL(). Musi mieć format: gs://bucket/object lub https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>
storage/invalid-argument Argument przekazany do funkcji put() musi być tablicą File, Blob lub UInt8. Argument przekazany do funkcji putString() musi być ciągiem znaków typu raw, Base64 lub Base64URL.
storage/no-default-bucket We właściwości storageBucket konfiguracji nie ustawiono zasobnika.
storage/cannot-slice-blob Zwykle dzieje się tak, gdy plik lokalny został zmieniony (usunięty, ponownie zapisany itp.). Sprawdź, czy plik nie został zmieniony, i spróbuj przesłać go ponownie.
storage/server-file-wrong-size Plik na kliencie nie odpowiada rozmiarowi pliku otrzymanego przez serwer. Spróbuj przesłać jeszcze raz.