有時會發生錯誤。
如有疑問,請查看傳回的錯誤,並查看錯誤訊息。以下程式碼顯示自訂錯誤處理常式實作項目,用於檢查 Cloud Storage 傳回的錯誤代碼和錯誤訊息。這類錯誤處理程序可新增至 Cloud Storage API 中使用的各種物件 (例如 UploadTask
和 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 } }
如果您查看錯誤訊息且 Cloud Storage Security Rules 支援執行動作,但仍無法順利修正錯誤,請前往支援頁面告訴我們您需要哪方面的協助。
處理錯誤訊息
導致發生錯誤的原因有很多,包括檔案不存在、使用者無權存取所需檔案,或是使用者取消上傳檔案。
為正確診斷問題並處理錯誤,以下列出客戶會產生的所有錯誤,以及這些錯誤發生的原因。這個表格中的錯誤代碼在 StorageException
類別中定義為整數常數。
程式碼 | 原因 |
---|---|
ERROR_UNKNOWN |
發生不明錯誤。 |
ERROR_OBJECT_NOT_FOUND |
指定參照項目中沒有物件。 |
ERROR_BUCKET_NOT_FOUND |
未設定「Cloud Storage」的值區 |
ERROR_PROJECT_NOT_FOUND |
未為 Cloud Storage 設定專案 |
ERROR_QUOTA_EXCEEDED |
已超過 Cloud Storage 值區的配額。如果您採用 Spark 定價方案,建議您升級至即付即用的 Blaze 定價方案。如果您已採用 Blaze 定價方案,請與 Firebase 支援團隊聯絡。 重要事項:自 |
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>
的格式