Obsługa błędów w Cloud Storage na Androidzie

Czasami coś idzie nie tak, jak powinno, i występuje błąd.

W razie wątpliwości sprawdź zwrócony błąd i spójrz na komunikat o błędzie. Poniższy kod pokazuje implementację niestandardowego modułu obsługi błędów, który sprawdza kod i komunikat o błędzie zwracane przez funkcję Cloud Storage. Takie metody obsługi błędów można dodawać do różnych obiektów używanych w interfejsie API Cloud Storage (np. UploadTaskFileDownloadTask).

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 masz Cloud Storage Security Rules, które umożliwiają działanie, ale nadal nie możesz naprawić błędu, odwiedź naszą stronę pomocy i poinformuj nas, jak możemy Ci pomóc.

Obsługa komunikatów o błędach

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

Aby prawidłowo zdiagnozować problem i rozwiązać błąd, zapoznaj się z pełną listą wszystkich błędów, które może zgłosić nasz klient, oraz sposobami ich wystąpienia. Kody błędów w tej tabeli są zdefiniowane w klasie StorageException jako stałe całkowite.

Kod Przyczyna
ERROR_UNKNOWN Wystąpił nieznany błąd.
ERROR_OBJECT_NOT_FOUND W określonym odwołaniu nie ma obiektu.
ERROR_BUCKET_NOT_FOUND Brak zasobnika skonfigurowanego dla Cloud Storage
ERROR_PROJECT_NOT_FOUND Nie skonfigurowano żadnego projektu dla Cloud Storage
ERROR_QUOTA_EXCEEDED Limit w przypadku puli Cloud Storage został przekroczony. Jeśli korzystasz z abonamentu Spark, rozważ przejście na abonament Blaze z płatnością za korzystanie. Jeśli korzystasz już z abonamentu Blaze, skontaktuj się z zespołem pomocy Firebase.

Ważne: od 1 października 2025 r. abonament Blaze będzie wymagany do korzystania z Cloud Storage, nawet w przypadku domyślnych puli.
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 czynności. Sprawdź swoje reguły, aby upewnić się, że są prawidłowe.
ERROR_RETRY_LIMIT_EXCEEDED Przekroczono maksymalny limit czasu operacji (przesyłanie, pobieranie, usuwanie itp.). Spróbuj ponownie.
ERROR_INVALID_CHECKSUM Plik na kliencie nie jest zgodny z sumą kontrolną pliku otrzymanego przez serwer. Spróbuj przesłać jeszcze raz.
ERROR_CANCELED Operacja została anulowana przez użytkownika.

Próba wywołania funkcji getReferenceFromUrl() z nieprawidłowym adresem URL spowoduje wyjątek IllegalArgumentException. Argument tej metody musi mieć postać gs://bucket/object lub https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>.