Menggabungkan Pertanyaan Firestore Secara Setempat
Memandangkan Firestore tidak mempunyai operator ATAU yang logik, menggabungkan berbilang pertanyaan secara setempat boleh menjadi satu cabaran. Satu pendekatan ialah menyarangkan pertanyaan dalam onSuccessListener pertanyaan lain. Walau bagaimanapun, ini boleh menimbulkan kebimbangan tentang prestasi.
Untuk mengatasinya, penyelesaian alternatif menggunakan Tasks disyorkan. Kaedah whenAllSuccess() menggabungkan dua atau lebih tugasan dan memanggil panggilan balik apabila semua tugasan berjaya diselesaikan:
Query firstQuery = rootRef... Query secondQuery = rootRef... Task firstTask = firstQuery.get(); Task secondTask = secondQuery.get(); Task combinedTask = Tasks.whenAllSuccess(firstTask, secondTask).addOnSuccessListener(new OnSuccessListener<List<Object>>() { @Override public void onSuccess(List<Object> list) { //Do what you need to do with your list } });
Dalam contoh ini, senarai yang dihantar kepada panggilan balik onSuccess() mengandungi hasil kedua-dua pertanyaan dalam susunan yang sama seperti tugasan yang ditakrifkan.
Pilihan lain ialah kaedah continueWith(), yang merantai tugas dan memanggil panggil balik apabila tugasan sebelumnya berjaya diselesaikan. Pilihan antara whenAllSuccess() dan continueWith() bergantung pada keperluan aplikasi khusus dan kes penggunaan.
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Pertanyaan Firestore Secara Setempat Menggunakan Tugasan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!