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ę 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>