Behandeln Sie Fehler für Cloud Storage auf Android

Manchmal laufen die Dinge nicht wie geplant und es kommt zu einem Fehler.

Überprüfen Sie im Zweifelsfall den zurückgegebenen Fehler und sehen Sie nach, was in der Fehlermeldung steht. Der folgende Code zeigt eine benutzerdefinierte Fehlerhandlerimplementierung, die den von Cloud Storage zurückgegebenen Fehlercode und die Fehlermeldung überprüft. Solche Fehlerhandler können zu 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-Speicher-Sicherheitsregeln haben, die Ihr Eingreifen zulassen, aber immer noch Schwierigkeiten haben, den Fehler zu beheben, besuchen Sie unsere Support-Seite und teilen Sie uns mit, wie wir Ihnen helfen können.

Behandeln Sie Fehlermeldungen

Es gibt eine Reihe von Gründen, warum Fehler auftreten können, einschließlich der Tatsache, dass die Datei nicht vorhanden ist, dass der Benutzer keine Berechtigung zum Zugriff auf die gewünschte Datei hat oder dass der Benutzer den Datei-Upload abgebrochen hat.

Um das Problem richtig zu diagnostizieren und den Fehler zu beheben, finden Sie hier eine vollständige Liste aller Fehler, die unser Kunde melden wird, und wie sie auftreten können. Fehlercodes in dieser Tabelle werden in der StorageException Klasse als Ganzzahlkonstanten definiert.

Code Grund
ERROR_UNKNOWN Ein unbekannter Fehler ist aufgetreten.
ERROR_OBJECT_NOT_FOUND An 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 Cloud Storage-Bucket wurde überschritten. Wenn Sie sich im kostenlosen Tarif befinden, führen Sie ein Upgrade auf einen kostenpflichtigen Tarif durch. Wenn Sie einen kostenpflichtigen Plan haben, wenden Sie sich an den Firebase-Support.
ERROR_NOT_AUTHENTICATED Der Benutzer ist nicht authentifiziert. Bitte authentifizieren Sie sich und versuchen Sie es erneut.
ERROR_NOT_AUTHORIZED Der Benutzer ist nicht berechtigt, die gewünschte Aktion auszuführen. Überprüfen Sie Ihre Regeln, um sicherzustellen, dass sie korrekt sind.
ERROR_RETRY_LIMIT_EXCEEDED Das maximale Zeitlimit für einen Vorgang (Hochladen, Herunterladen, Löschen usw.) wurde überschritten. Versuchen Sie es erneut.
ERROR_INVALID_CHECKSUM Die Datei auf dem Client stimmt nicht mit der Prüfsumme der vom Server empfangenen Datei überein. Versuchen Sie es erneut.
ERROR_CANCELED Der Benutzer hat den Vorgang abgebrochen.

Darüber hinaus führt der Versuch, getReferenceFromUrl() mit einer ungültigen URL aufzurufen, dazu, dass eine IllegalArgumentException ausgelöst wird. Das Argument für die obige Methode muss die Form gs://bucket/object oder https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN> haben