Menangani error untuk Cloud Storage di Android

Terkadang beberapa hal tidak berjalan sesuai rencana dan terjadi error.

Jika merasa ragu, periksa error yang ditampilkan, lalu lihat isi pesannya. Kode berikut menunjukkan implementasi pengendali error khusus yang memeriksa kode error dan pesan error yang ditampilkan oleh Cloud Storage. Pengendali error tersebut dapat ditambahkan ke beragam objek yang digunakan dalam Cloud Storage API (misalnya, UploadTask dan FileDownloadTask).

Kotlin+KTX

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
    }
}

Jika Anda telah memeriksa pesan error dan memiliki Cloud Storage Security Rules yang mengizinkan tindakan Anda, tetapi masih kesulitan dalam memperbaiki error tersebut, buka halaman Dukungan dan beri tahu kami bantuan apa yang diperlukan.

Menangani Pesan Error

Ada sejumlah alasan terjadinya error, di antaranya adalah tidak adanya file, pengguna tidak memiliki izin untuk mengakses file yang diinginkan, atau pengguna membatalkan upload file.

Untuk mendiagnosis masalah dan menangani error dengan tepat, baca daftar lengkap berikut yang berisi semua error yang mungkin dialami klien kami, beserta penyebab setiap error. Kode error dalam tabel ini ditentukan dalam class StorageException sebagai konstanta bilangan bulat.

Kode Alasan
ERROR_UNKNOWN Terjadi error tak dikenal.
ERROR_OBJECT_NOT_FOUND Tidak ada objek pada referensi yang ditentukan.
ERROR_BUCKET_NOT_FOUND Tidak ada bucket yang dikonfigurasi untuk Cloud Storage
ERROR_PROJECT_NOT_FOUND Tidak ada project yang dikonfigurasi untuk Cloud Storage
ERROR_QUOTA_EXCEEDED Kuota di bucket Cloud Storage telah terlampaui. Jika Anda menggunakan paket harga Spark, pertimbangkan untuk mengupgrade ke paket harga Blaze bayar sesuai penggunaan. Jika Anda sudah menggunakan paket harga Blaze, hubungi Dukungan Firebase.

Penting: Mulai 1 Oktober 2025, paket harga Blaze akan diperlukan untuk menggunakan Cloud Storage, bahkan bucket default.
ERROR_NOT_AUTHENTICATED Pengguna tidak terautentikasi. Autentikasi pengguna, lalu coba lagi.
ERROR_NOT_AUTHORIZED Pengguna tidak memiliki izin untuk melakukan tindakan yang diminta. Periksa aturan Anda untuk memastikan bahwa aturan tersebut sudah benar.
ERROR_RETRY_LIMIT_EXCEEDED Anda telah melebihi batas waktu maksimum suatu operasi (upload, download, hapus, dll.). Coba lagi.
ERROR_INVALID_CHECKSUM File pada klien tidak cocok dengan checksum file yang diterima oleh server. Coba upload lagi.
ERROR_CANCELED Pengguna membatalkan operasi.

Selain itu, IllegalArgumentException akan ditampilkan jika getReferenceFromUrl() dipanggil dengan URL yang tidak valid. Argumen untuk metode di atas harus berupa gs://bucket/object atau https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>