有時在建構應用程式時,事情不會按照計畫進行,而且會發生錯誤!
如有疑問,請擷取函式擲回的例外狀況,並查看錯誤訊息。
final storageRef = FirebaseStorage.instance.ref().child("files/uid");
try {
final listResult = await storageRef.listAll();
} on FirebaseException catch (e) {
// Caught an exception from Firebase.
print("Failed with error '${e.code}': ${e.message}");
}
處理錯誤訊息
發生錯誤的原因有很多,包括檔案不存在、使用者沒有存取所需檔案的權限,或使用者取消上傳檔案。
為正確診斷問題並處理錯誤,以下列出用戶端會引發的所有錯誤,以及錯誤發生的原因。
| 程式碼 | 說明 |
|---|---|
storage/unknown |
發生不明錯誤。 |
storage/object-not-found |
所需參照位置沒有任何物件。 |
storage/bucket-not-found |
未設定 Cloud Storage 的 bucket |
storage/project-not-found |
未設定 Cloud Storage 專案 |
storage/quota-exceeded |
值區已超過配額。Cloud Storage for Firebase 必須採用即付即用 Blaze 定價方案。如果 Spark 定價方案專案出現這則錯誤訊息,請升級至 Blaze 定價方案,重新取得存取權。詳情請參閱常見問題。 |
storage/unauthenticated |
使用者未經驗證,請驗證後再試一次。 |
storage/unauthorized |
使用者未獲授權執行所需動作,請檢查安全性規則,確保規則正確。 |
storage/retry-limit-exceeded |
作業 (上傳、下載、刪除等) 超過時間上限。請重新上傳。 |
storage/invalid-checksum |
用戶端上的檔案與伺服器收到的檔案核對和不符。請重新上傳。 |
storage/canceled |
使用者已取消操作。 |
storage/invalid-event-name |
提供的事件名稱無效。必須是 [running, progress, pause] 其中之一 |
storage/invalid-url |
提供給 refFromURL() 的網址無效。必須採用以下格式:gs://bucket/object 或 https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN> |
storage/invalid-argument |
傳遞至 put() 的引數必須是 File、Blob 或 UInt8 陣列。傳遞至 putString() 的引數必須是原始、Base64 或 Base64URL 字串。 |
storage/no-default-bucket |
設定的 storageBucket 屬性中未設定任何值區。 |
storage/cannot-slice-blob |
通常發生在本機檔案變更時 (刪除、重新儲存等)。確認檔案未變更後,請再次嘗試上傳。 |
storage/server-file-wrong-size |
用戶端上的檔案大小與伺服器收到的檔案大小不符。請重新上傳。 |