Xử lý lỗi cho Cloud Storage trên Flutter

Đôi khi, khi bạn đang tạo một ứng dụng, mọi thứ không diễn ra theo kế hoạch và xảy ra lỗi!

Khi nghi ngờ, hãy bắt ngoại lệ do hàm trả về và xem thông báo lỗi có gì.

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}");
}

Xử lý thông báo lỗi

Có một số lý do khiến lỗi có thể xảy ra, bao gồm cả việc tệp không tồn tại, người dùng không có quyền truy cập vào tệp mong muốn hoặc người dùng huỷ tải tệp lên.

Để chẩn đoán đúng vấn đề và xử lý lỗi, sau đây là danh sách đầy đủ tất cả các lỗi mà ứng dụng khách của chúng tôi sẽ gặp phải và cách các lỗi đó xảy ra.

Mô tả
storage/unknown Đã xảy ra lỗi không xác định.
storage/object-not-found Không có đối tượng nào tại vị trí tham chiếu mong muốn.
storage/bucket-not-found Không có bộ chứa nào được định cấu hình cho Cloud Storage
storage/project-not-found Không có dự án nào được định cấu hình cho Cloud Storage
storage/quota-exceeded Bạn đã vượt quá hạn mức trên vùng chứa Cloud Storage. Nếu bạn đang dùng gói giá Spark, hãy cân nhắc nâng cấp lên gói giá linh hoạt (trả tiền theo mức dùng). Nếu bạn đang dùng Gói giá linh hoạt, hãy liên hệ với Nhóm hỗ trợ Firebase.

Lưu ý quan trọng: Kể từ ngày 1 tháng 10 năm 2025, bạn bắt buộc phải dùng Gói giá linh hoạt để sử dụng Cloud Storage, ngay cả các vùng lưu trữ mặc định.
storage/unauthenticated Người dùng chưa được xác thực, vui lòng xác thực rồi thử lại.
storage/unauthorized Người dùng không được phép thực hiện hành động mong muốn, hãy kiểm tra các quy tắc bảo mật để đảm bảo chúng chính xác.
storage/retry-limit-exceeded Đã vượt quá giới hạn thời gian tối đa cho một thao tác (tải lên, tải xuống, xoá, v.v.). Hãy thử tải lên lại.
storage/invalid-checksum Tệp trên máy khách không khớp với tổng kiểm của tệp mà máy chủ nhận được. Hãy thử tải lên lại.
storage/canceled Người dùng đã huỷ thao tác.
storage/invalid-event-name Tên sự kiện bạn cung cấp không hợp lệ. Phải là một trong các giá trị [running, progress, pause]
storage/invalid-url Bạn đã cung cấp URL không hợp lệ cho refFromURL(). Phải có dạng: gs://bucket/object hoặc https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>
storage/invalid-argument Đối số được truyền đến put() phải là Mảng File, Blob hoặc UInt8. Đối số được truyền đến putString() phải là một chuỗi thô, Base64 hoặc Base64URL.
storage/no-default-bucket Bạn chưa đặt nhóm nào trong thuộc tính storageBucket của cấu hình.
storage/cannot-slice-blob Thường xảy ra khi tệp cục bộ đã thay đổi (bị xoá, lưu lại, v.v.). Hãy thử tải lên lại sau khi xác minh rằng tệp không thay đổi.
storage/server-file-wrong-size Tệp trên ứng dụng không khớp với kích thước của tệp mà máy chủ nhận được. Hãy thử tải lên lại.