Obsługuj błędy dotyczące Cloud Storage na Androidzie

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ę 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 dodawać do różnych obiektów używanych w 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 po sprawdzeniu komunikatu o błędzie i regułach bezpieczeństwa usługi Cloud Storage zezwalasz na działanie, ale nadal nie możesz naprawić błędu, odwiedź naszą stronę pomocy technicznej i daj nam znać, jak możemy Ci pomóc.

Obsługa komunikatów o błędach

Istnieje wiele powodów, dla których mogą wystąpić błędy, w tym plik nie istnieje, użytkownik nie ma uprawnień dostępu do żądanego pliku lub użytkownik anuluje przesyłanie pliku.

Aby właściwie zdiagnozować problem i poradzić sobie z błędem, poniżej znajduje się pełna lista wszystkich błędów, które zgłasza 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 odwołaniu nie istnieje żaden obiekt.
ERROR_BUCKET_NOT_FOUND Żadne zasobniki nie są skonfigurowane dla Cloud Storage
ERROR_PROJECT_NOT_FOUND Żaden projekt nie jest skonfigurowany dla Cloud Storage
ERROR_QUOTA_EXCEEDED Przekroczono limit miejsca w zasobniku Cloud Storage. Jeśli korzystasz z poziomu bezpłatnego, przejdź na plan płatny. Jeśli korzystasz z płatnego abonamentu, 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 ma uprawnień do wykonania żądanej akcji, sprawdź swoje reguły, aby upewnić się, że są poprawne.
ERROR_RETRY_LIMIT_EXCEEDED Przekroczono maksymalny limit czasu operacji (przesyłanie, pobieranie, usuwanie itp.). Spróbuj ponownie.
ERROR_INVALID_CHECKSUM Plik na kliencie nie pasuje do sumy kontrolnej pliku otrzymanego przez serwer. Spróbuj przesłać ponownie.
ERROR_CANCELED Użytkownik anulował operację.

Ponadto próba wywołania getReferenceFromUrl() z nieprawidłowym adresem URL spowoduje wyrzucenie wyjątku IllegalArgumentException . Argument powyższej metody musi mieć postać gs://bucket/object lub https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>