有時在建構應用程式時,事情不會如預期進行,而且會發生錯誤!
如有疑問,請擷取函式擲回的例外狀況,並查看錯誤訊息的內容。
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 值區 | 
storage/project-not-found | 
未為 Cloud Storage 設定任何專案 | 
storage/quota-exceeded | 
您已超過 Cloud Storage bucket 的配額。如果採用 Spark 定價方案,建議升級至即付即用 Blaze 定價方案。如果已採用 Blaze 定價方案,請與 Firebase 支援團隊聯絡。 重要事項:  | 
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 屬性中未設定任何 bucket。 | 
storage/cannot-slice-blob | 
如果本機檔案已變更 (刪除、重新儲存等),通常會發生這種情況。確認檔案未變更後,請再次上傳。 | 
storage/server-file-wrong-size | 
用戶端上的檔案大小與伺服器收到的檔案大小不符。請再次上傳。 |