Đôi khi, mọi thứ không diễn ra theo kế hoạch và xảy ra lỗi.
Khi không chắc chắn, hãy kiểm tra lỗi được trả về và xem thông báo lỗi.
Đoạn mã sau đây cho thấy cách triển khai trình xử lý lỗi tuỳ chỉnh để kiểm tra
mã lỗi và thông báo lỗi do Cloud Storage trả về. Bạn có thể thêm các trình xử lý lỗi như vậy vào nhiều đối tượng được dùng trong API Cloud Storage (ví dụ: UploadTask và FileDownloadTask).
Kotlin
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 } }
Nếu bạn đã kiểm tra thông báo lỗi và có Cloud Storage Security Rules cho phép hành động của bạn, nhưng vẫn gặp khó khăn trong việc khắc phục lỗi, hãy truy cập vào trang Hỗ trợ của chúng tôi và cho chúng tôi biết cách chúng tôi có thể giúp bạn.
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 đủ về tất cả các lỗi mà ứng dụng khách của chúng tôi sẽ đưa ra và cách các lỗi này có thể xảy ra. Mã lỗi trong bảng này được xác định trong lớp StorageException dưới dạng hằng số nguyên.
| Mã | Lý do |
|---|---|
ERROR_UNKNOWN |
Đã xảy ra lỗi không xác định. |
ERROR_OBJECT_NOT_FOUND |
Không có đối tượng nào tồn tại ở tham chiếu đã chỉ định. |
ERROR_BUCKET_NOT_FOUND |
Không có vùng chứa nào được định cấu hình cho Cloud Storage |
ERROR_PROJECT_NOT_FOUND |
Không có dự án nào được định cấu hình cho Cloud Storage |
ERROR_QUOTA_EXCEEDED |
Đã 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) Blaze. Nếu bạn đã dùng gói giá Blaze, hãy liên hệ với Bộ phận hỗ trợ của Firebase. Quan trọng: Kể từ ngày |
ERROR_NOT_AUTHENTICATED |
Người dùng chưa được xác thực, vui lòng xác thực và thử lại. |
ERROR_NOT_AUTHORIZED |
Người dùng không được phép thực hiện hành động được yêu cầu, hãy kiểm tra quy tắc để đảm bảo các quy tắc đó chính xác. |
ERROR_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ử lại. |
ERROR_INVALID_CHECKSUM |
Tệp trên ứng dụng khách không khớp với tổng kiểm tra của tệp do máy chủ nhận được. Hãy thử tải video lên lại. |
ERROR_CANCELED |
Người dùng đã huỷ thao tác. |
Ngoài ra, việc cố gắng gọi getReferenceFromUrl() bằng một URL không hợp lệ sẽ dẫn đến việc IllegalArgumentException bị loại bỏ. Đối số cho
phương thức ở trên phải có dạng gs://bucket/object hoặc
https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>