Manchmal läuft es nicht wie geplant und es tritt ein Fehler auf.
Prüfen Sie im Zweifelsfall den zurückgegebenen Fehler und die Fehlermeldung.
Der folgende Code zeigt eine benutzerdefinierte Fehlerbehandlungsimplementierung, die den von Cloud Storage zurückgegebenen Fehlercode und die Fehlermeldung prüft. Solche Fehler-Handler können verschiedenen Objekten hinzugefügt werden, die in der Cloud Storage API verwendet werden (z. B. UploadTask und FileDownloadTask).
Kotlin
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 geprüft haben und Cloud Storage Security Rules haben, die Ihre Aktion zulassen, aber Sie den Fehler immer noch nicht beheben können, besuchen Sie unsere Supportseite und teilen Sie uns mit, wie wir Ihnen helfen können.
Fehlermeldungen verarbeiten
Es gibt eine Reihe von Gründen, warum Fehler auftreten können, z. B. weil die Datei nicht vorhanden ist, der Nutzer keine Berechtigung für den Zugriff auf die gewünschte Datei hat oder der Nutzer den Dateiupload abbricht.
Damit Sie das Problem richtig diagnostizieren und den Fehler beheben können, finden Sie hier eine vollständige Liste aller Fehler, die unser Client ausgibt, und wie sie auftreten können. Fehlercodes in dieser Tabelle sind in der Klasse StorageException als Ganzzahlkonstanten definiert.
| Code | Grund |
|---|---|
ERROR_UNKNOWN |
Ein unbekannter Fehler ist aufgetreten. |
ERROR_OBJECT_NOT_FOUND |
Unter der angegebenen 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 wurde überschritten. Für Cloud Storage for Firebase ist das Blaze-Preismodell (Pay as you go) erforderlich. Wenn Sie diesen Fehler bei einem Projekt mit dem Spark-Preismodell erhalten, müssen Sie ein Upgrade auf das Blaze-Preismodell durchführen, um wieder Zugriff zu erhalten. Weitere Informationen finden Sie in den FAQs. |
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 angeforderte Aktion auszuführen. Prüfen Sie, ob Ihre Regeln korrekt sind. |
ERROR_RETRY_LIMIT_EXCEEDED |
Das maximale Zeitlimit für einen Vorgang (Upload, Download, Löschen usw.) wurde überschritten. Bitte versuchen Sie es noch einmal. |
ERROR_INVALID_CHECKSUM |
Die Datei auf dem Client stimmt nicht mit der Prüfsumme der vom Server empfangenen Datei überein. Versuche, die Inhalte noch einmal hochzuladen. |
ERROR_CANCELED |
Der Nutzer hat den Vorgang abgebrochen. |
Außerdem führt der Versuch, getReferenceFromUrl() mit einer ungültigen URL aufzurufen, dazu, dass ein IllegalArgumentException ausgelöst wird. Das Argument für die obige Methode muss das Format gs://bucket/object oder https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN> haben.