Sepintas, cache adalah data yang tersimpan didalam hape. Data ini diambil dari server Google Cloud saat cache kosong atau cache berbeda isinya dengan server. Karena aplikasi ini hanya diakses oleh satu pengguna saja, maka data di server hanya diubah oleh pengguna ybs. Artinya data server tidak berubah kecuali pengguna ybs merubahnya alias melakukan transaksi, penghapusan atau tambah nama.
Jadi sifatnya data cache disini tidak seperti data chat yang diakses oleh ribuan pengguna yang akan menyebabkan data server berubah ubah terus bagi pengguna lainnya. Yang pastinya data cache akan sering di sinkron kan dengan data server.
Karena keuntungan aplikasi ini hanya memiliki satu pengguna untuk satu data khusus miliknya, maka mudah menggunakan data cache hanya tuk sekedar cetak PDF/CSV ataupun urutkan nama/tanggal dls.
Sehingga saya buatlah untuk hanya akses data cache, karena yakin data tidak akan berubah. Karena saat pengguna melakukan transaksi baru, data cache juga akan diubah otomatis. Bila tidak melakukan apa apa, maka data cache akan pasti selalu sama seperti data server. Jadi data cache adalah data yang ada di memori hape. Dan saya lihat kecil saja. Berkisar 20MByte s/d 100MByte maksimal. Karena itu setelan cache default dari server Google Cloud, hanya memberikan maksimal 100MB, dan saya cek hanya 18MB saja.
Dibawah ini beberapa contoh Source.Cache aplikasi catatan kredit v50.0
public void exportPDF() {
CollectionReference unisRef = db.collection(mUserFb);
PdfDocument pdfDocument = new PdfDocument(); // initial PdfDocument
unisRef.orderBy("name").limit(100).get(Source.CACHE).addOnCompleteListener(task -> {
int noTransaksi = 0;
dan
public void KreditSet() {
//CollectionReference enengRef = db.collection(mUserFb);
db.collection(mUserFb).get(Source.CACHE).addOnCompleteListener(task -> {
double sumKuKredit = 0.0;
dan
PdfDocument.Page myPage = pdfDocument.startPage(mypageInfo);
Canvas canvas = myPage.getCanvas();
title.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.NORMAL));
mRestaurantRef.get(Source.CACHE).addOnCompleteListener(task -> {
if (task.isSuccessful()) {
DocumentSnapshot document = task.getResult();
Tetapi saat dijalankan, kadang perlu 2x klik, kadang malahan crash.
Setelah cek sana sini di v50.0 ini, akhirnya saya temukan tuk menjaga Source.Cache mendapatkan datanya maka perlu dijagain diakhir task seperti ini
} else {
Log.d(TAG, "get failed with ", task.getException());
Jadi kalau mau lengkapnya adalah :
mRestaurantRef.get(Source.CACHE).addOnCompleteListener(task -> {
if (task.isSuccessful()) {
DocumentSnapshot document = task.getResult();
Komentar