Manchmal laufen die Dinge nicht wie geplant und es tritt ein Fehler auf.
Überprüfen Sie im Zweifelsfall den zurückgegebenen Fehler und sehen Sie, was in der Fehlermeldung steht. Der folgende Code zeigt eine benutzerdefinierte Fehlerbehandlungsimplementierung, die den von Firebase Storage zurückgegebenen Fehlercode und die Fehlermeldung überprüft. Solche Fehlerbehandlungsroutinen können verschiedenen Objekten hinzugefügt werden, die in der Speicher-API verwendet werden (z. B. UploadTask
und FileDownloadTask
).
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 } }
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 } }
Wenn Sie die Fehlermeldung überprüft haben und über Speichersicherheitsregeln verfügen, die Ihre Aktion zulassen, aber immer noch Probleme 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, darunter die nicht vorhandene Datei, der Benutzer, der keine Berechtigung zum Zugriff auf die gewünschte Datei hat, oder der Benutzer, der den Datei-Upload abbricht.
Um das Problem richtig zu diagnostizieren und den Fehler zu behandeln, finden Sie hier eine vollständige Liste aller Fehler, die unser Client auslösen 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 | Bei 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 in Ihrem Cloud-Speicher-Bucket wurde überschritten. Wenn Sie sich auf der kostenlosen Stufe befinden, aktualisieren Sie auf einen kostenpflichtigen Tarif. 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 nochmal. |
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. |
getReferenceFromUrl()
versuchen, getReferenceFromUrl()
mit einer ungültigen URL IllegalArgumentException
wird außerdem eine IllegalArgumentException
ausgelöst. 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>