Czasem wszystko nie działa zgodnie z planem i pojawia się błąd.
W razie wątpliwości sprawdź błąd zwrócony i treść komunikatu.
Poniższy kod przedstawia niestandardową implementację modułu obsługi błędów, która sprawdza
kod błędu i komunikat o błędzie zwrócone przez Cloud Storage. Taki błąd
moduły obsługi można dodawać do różnych obiektów używanych w interfejsie API Cloud Storage (na
np. 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 widzisz komunikat o błędzie i masz Cloud Storage Security Rules zezwalające na ale nadal masz problem z jego naprawieniem, odwiedź stronę pomocy i daj nam znać, jak możemy Ci pomóc.
Obsługa komunikatów o błędach
Błędy mogą być spowodowane wieloma przyczynami. Jednym z nich jest plik nie istnieje, użytkownik nie ma uprawnień dostępu do żądanego pliku lub Użytkownik anuluje przesyłanie pliku.
Aby prawidłowo zdiagnozować problem i rozwiązać go, podajemy tu pełną listę
jakie błędy będzie zgłaszany przez klienta i jak mogą się one pojawić. Kody błędów w
są zdefiniowane w klasie StorageException
jako stałe całkowite.
Kod | Przyczyna |
---|---|
ERROR_UNKNOWN |
Wystąpił nieznany błąd. |
ERROR_OBJECT_NOT_FOUND |
W żądanym odwołaniu nie ma obiektu. |
ERROR_BUCKET_NOT_FOUND |
Nie skonfigurowano zasobnika dla zasobnika Cloud Storage |
ERROR_PROJECT_NOT_FOUND |
W projekcie Cloud Storage nie ma skonfigurowanego projektu |
ERROR_QUOTA_EXCEEDED |
Przekroczono limit w zasobniku Cloud Storage. Jeśli korzystasz z abonamentu bezpłatnego, przejdź na abonament płatny. Jeśli masz płatny abonament, skontaktuj się z zespołem pomocy Firebase. |
ERROR_NOT_AUTHENTICATED |
Użytkownik nie jest uwierzytelniony. Przeprowadź uwierzytelnianie i spróbuj ponownie. |
ERROR_NOT_AUTHORIZED |
Użytkownik nie ma uprawnień do wykonania żądanego działania. Sprawdź, czy reguły są prawidłowe. |
ERROR_RETRY_LIMIT_EXCEEDED |
Maksymalny limit czasu operacji (przesyłanie, pobieranie, usuwanie itp.) został przekroczony. Spróbuj ponownie. |
ERROR_INVALID_CHECKSUM |
Plik w kliencie nie jest zgodny z sumą kontrolną pliku odebranego przez serwer. Spróbuj przesłać jeszcze raz. |
ERROR_CANCELED |
Operacja anulowana przez użytkownika. |
Dodatkowo próba wywołania getReferenceFromUrl()
z nieprawidłowym adresem URL
skutkuje odrzuceniem wyniku IllegalArgumentException
. Argument dla funkcji
powyższa metoda musi mieć format gs://bucket/object
lub
https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>