處理 Flutter 上的 Cloud Storage 錯誤

有時,當您建立應用程式時,事情不會按計劃進行,並且會發生錯誤!

如有疑問,請捕獲函數引發的異常並查看錯誤訊息的內容。

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 儲存桶的配額。如果您屬於免費套餐,請升級至付費套餐。如果您使用的是付費套餐,請聯絡 Firebase 支援人員。
storage/unauthenticated用戶未經過身份驗證,請進行身份驗證並重試。
storage/unauthorized使用者無權執行所需的操作,請檢查您的安全規則以確保它們正確。
storage/retry-limit-exceeded已超出操作(上傳、下載、刪除等)的最長時間限制。再次嘗試上傳。
storage/invalid-checksum客戶端上的檔案與伺服器接收的檔案的校驗和不符。再次嘗試上傳。
storage/canceled用戶取消了操作。
storage/invalid-event-name提供的事件名稱無效。必須是 [ runningprogresspause ] 之一
storage/invalid-urlrefFromURL()提供的 URL 無效。格式必須為: gs://bucket/objecthttps://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>
storage/invalid-argument傳遞給put()的參數必須是FileBlobUInt8 Array。傳遞給putString()的參數必須是原始字串、 Base64Base64URL字串。
storage/no-default-bucket您的配置的storageBucket屬性中尚未設定儲存桶。
storage/cannot-slice-blob通常發生在本機檔案發生變更(刪除、再次儲存等)時。確認文件未更改後再次嘗試上傳。
storage/server-file-wrong-size客戶端上的檔案與伺服器接收的檔案大小不符。再次嘗試上傳。