Fehler bei Cloud Storage unter Android beheben

Manchmal läuft es nicht wie geplant und es tritt ein Fehler auf.

Prüfen Sie im Zweifelsfall den zurückgegebenen Fehler und sehen Sie sich an, was in der Fehlermeldung steht. Im folgenden Code wird eine benutzerdefinierte Fehlerbehandlung implementiert, die den von Cloud Storage zurückgegebenen Fehlercode und die Fehlermeldung prüft. Solche Fehlerhandler können verschiedenen Objekten hinzugefügt werden, die in der Cloud Storage API verwendet werden (z. B. UploadTask und 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
    }
}

Wenn Sie die Fehlermeldung überprüft haben und Cloud Storage Security Rules für die Aktion haben, die Aktion aber weiterhin nicht ausgeführt werden kann, rufen Sie unsere Supportseite auf und teilen Sie uns mit, wie wir Ihnen helfen können.

Fehlermeldungen verarbeiten

Fehler können aus verschiedenen Gründen auftreten, nicht vorhanden ist, wenn der Nutzer keine Zugriffsberechtigung für die gewünschte Datei hat, oder Nutzer bricht den Dateiupload ab.

Damit Sie das Problem richtig diagnostizieren und beheben können, finden Sie im Folgenden eine vollständige Liste aller die vom Kunden ausgegebenen Fehler und wie sie auftreten können. Fehlercodes in dieser werden in der StorageException-Klasse als ganzzahlige Konstanten definiert.

Code Grund
ERROR_UNKNOWN Ein unbekannter Fehler ist aufgetreten.
ERROR_OBJECT_NOT_FOUND In der gewünschten Referenz ist kein Objekt vorhanden.
ERROR_BUCKET_NOT_FOUND Für Cloud Storage ist kein Bucket konfiguriert
ERROR_PROJECT_NOT_FOUND Für Cloud Storage ist kein Projekt konfiguriert
ERROR_QUOTA_EXCEEDED Das Kontingent für Ihren Bucket Cloud Storage wurde überschritten. Wenn Sie die kostenlose Stufe nutzen, führen Sie ein Upgrade auf ein kostenpflichtiges Abo aus. Wenn Sie einen kostenpflichtigen Tarif haben, wenden Sie sich an den Firebase-Support.
ERROR_NOT_AUTHENTICATED Der Nutzer ist nicht authentifiziert. Bitte authentifizieren Sie sich und versuchen Sie es noch einmal.
ERROR_NOT_AUTHORIZED Der Nutzer ist nicht berechtigt, die gewünschte Aktion auszuführen. Überprüfen Sie Ihre Regeln auf ihre Richtigkeit.
ERROR_RETRY_LIMIT_EXCEEDED Das maximale Zeitlimit für einen Vorgang (z. B. Upload, Download oder Löschen) wurde überschritten. Bitte versuchen Sie es noch einmal.
ERROR_INVALID_CHECKSUM Die Datei auf dem Client stimmt nicht mit der Prüfsumme der Datei überein, die vom Server empfangen wurde. Versuchen Sie es noch einmal.
ERROR_CANCELED Vorgang wurde vom Nutzer abgebrochen.

Außerdem wird ein IllegalArgumentException geworfen, wenn versucht wird, getReferenceFromUrl() mit einer ungültigen URL aufzurufen. Das Argument für Die Methode oben muss das Format gs://bucket/object haben oder https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>