Czasami coś nie idzie zgodnie z planem i pojawia się błąd.
W razie wątpliwości sprawdź zwrócony błąd i zobacz, co mówi komunikat o błędzie. Poniższy kod przedstawia niestandardową implementację procedury obsługi błędów, która sprawdza kod błędu i komunikat o błędzie zwrócony przez Cloud Storage. Takie procedury obsługi błędów można dodać do różnych obiektów używanych w interfejsie Cloud Storage API (na przykład UploadTask
i 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 } }
Jeśli sprawdziłeś komunikat o błędzie i masz Reguły zabezpieczeń Cloud Storage, które pozwalają na podjęcie działań, ale nadal nie możesz naprawić błędu, odwiedź naszą stronę pomocy i daj nam znać, jak możemy Ci pomóc.
Obsługuj komunikaty o błędach
Istnieje wiele powodów, dla których mogą wystąpić błędy, na przykład nieistniejący plik, brak uprawnień dostępu użytkownika do żądanego pliku lub anulowanie przesyłania pliku przez użytkownika.
Aby prawidłowo zdiagnozować problem i poradzić sobie z błędem, poniżej znajduje się pełna lista wszystkich błędów, które zgłosi nasz klient, oraz sposobów ich wystąpienia. Kody błędów w tej tabeli są zdefiniowane w klasie StorageException
jako stałe całkowite.
Kod | Powód |
---|---|
ERROR_UNKNOWN | Wystąpił nieznany błąd. |
ERROR_OBJECT_NOT_FOUND | W żądanym punkcie odniesienia nie istnieje żaden obiekt. |
ERROR_BUCKET_NOT_FOUND | Dla Cloud Storage nie skonfigurowano żadnego zasobnika |
ERROR_PROJECT_NOT_FOUND | Żaden projekt nie jest skonfigurowany dla Cloud Storage |
ERROR_QUOTA_EXCEEDED | Limit w Twoim zasobniku Cloud Storage został przekroczony. Jeśli korzystasz z poziomu bezpłatnego, przejdź na plan płatny. Jeśli korzystasz z planu płatnego, skontaktuj się z pomocą techniczną Firebase. |
ERROR_NOT_AUTHENTICATED | Użytkownik nie jest uwierzytelniony. Uwierzytelnij się i spróbuj ponownie. |
ERROR_NOT_AUTHORIZED | Użytkownik nie jest upoważniony do wykonania żądanej akcji. Sprawdź swoje reguły, aby upewnić się, że są prawidłowe. |
ERROR_RETRY_LIMIT_EXCEEDED | Przekroczono maksymalny limit czasu operacji (przesyłania, pobierania, usuwania itp.). Spróbuj ponownie. |
ERROR_INVALID_CHECKSUM | Plik na kliencie nie jest zgodny z sumą kontrolną pliku otrzymanego przez serwer. Spróbuj przesłać ponownie. |
ERROR_CANCELED | Użytkownik anulował operację. |
Dodatkowo próba wywołania funkcji getReferenceFromUrl()
z nieprawidłowym adresem URL spowoduje wygenerowanie IllegalArgumentException
. Argument powyższej metody musi mieć postać gs://bucket/object
lub https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>