有時事情不會按照計畫進行,並會發生錯誤。
如有疑問,請查看傳回的錯誤和錯誤訊息。下列程式碼顯示自訂錯誤處理常式實作,可檢查 Cloud Storage 傳回的錯誤代碼和錯誤訊息。這類錯誤處理常式可新增至 Cloud Storage API 中使用的各種物件 (例如 UploadTask 和 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 } }
如果您已查看錯誤訊息,並確認Cloud Storage Security Rules允許您執行操作,但仍無法修正錯誤,請前往支援頁面,告訴我們您需要什麼協助。
處理錯誤訊息
發生錯誤的原因有很多,包括檔案不存在、使用者沒有存取所需檔案的權限,或使用者取消上傳檔案。
為正確診斷問題並處理錯誤,以下列出用戶端會引發的所有錯誤,以及發生原因。本表中的錯誤代碼在 StorageException 類別中定義為整數常數。
| 程式碼 | 原因 |
|---|---|
ERROR_UNKNOWN |
發生不明錯誤。 |
ERROR_OBJECT_NOT_FOUND |
指定參照中沒有任何物件。 |
ERROR_BUCKET_NOT_FOUND |
未針對Cloud Storage設定任何 bucket |
ERROR_PROJECT_NOT_FOUND |
未設定「Cloud Storage」的專案 |
ERROR_QUOTA_EXCEEDED |
bucket 已超過配額。Cloud Storage for Firebase 必須採用即付即用 Blaze 定價方案。如果專案採用 Spark 定價方案,並收到這則錯誤訊息,請升級至 Blaze 定價方案,重新取得存取權。詳情請參閱常見問題。 |
ERROR_NOT_AUTHENTICATED |
使用者未經驗證,請驗證後再試一次。 |
ERROR_NOT_AUTHORIZED |
使用者未獲授權執行要求的動作,請檢查規則是否正確。 |
ERROR_RETRY_LIMIT_EXCEEDED |
作業 (上傳、下載、刪除等) 超過時間上限。請再試一次。 |
ERROR_INVALID_CHECKSUM |
用戶端上的檔案與伺服器收到的檔案核對和不符。請重新上傳。 |
ERROR_CANCELED |
使用者已取消操作。 |
此外,如果嘗試使用無效網址呼叫 getReferenceFromUrl(),系統會擲回 IllegalArgumentException。上述方法的引數必須採用 gs://bucket/object 或 https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN> 格式