Mencari Sembang oleh Peserta dalam Firebase Menggunakan Rentetan Pertanyaan Kompaun
Apabila menstruktur data dalam Firebase, adalah penting untuk mengoptimumkan akses pangkalan data untuk mendapatkan semula yang cekap. Ini menjadi sangat penting apabila menanyakan perhubungan yang rumit.
Isu Pertanyaan Asal
Bayangkan jadual Firebase bernama "sembang" yang mengandungi senarai peserta dan item sembang. Matlamatnya adalah untuk mencari semua sembang yang melibatkan nama pengguna yang ditentukan. Malangnya, pertanyaan semasa:
this.af.database.list('chats', { query: { orderByChild: 'participants', equalTo: username, // How to check if participants contain username } });
tidak berkesan. Ini kerana:
Data Dioptimumkan Struktur
Untuk menangani isu ini, pertimbangkan untuk menyongsangkan indeks dengan menyimpan kategori di peringkat atas pokok dan meratakan struktur pangkalan data:
userChatrooms: { john: { chatRoom1: true, chatRoom2: true }, puf: { chatRoom1: true, chatRoom3: true } }
Struktur ini membolehkan anda untuk cekap senarai bilik sembang pertanyaan untuk pengguna tertentu:
ref.child('userChatrooms').child('john')
Pertanyaan Kompaun dengan Awan Firestore
Jika menggunakan Cloud Firestore, anda boleh memanfaatkan pengendalinya yang mengandungi tatasusunan yang berkuasa dan menganggap tatasusunan sebagai set:
db.collection('chats').where('participants', 'array-contains', username)
Pertanyaan ini dengan cekap mencari sembang yang mengandungi pengguna yang ditentukan sebagai seorang peserta.
Dengan mengoptimumkan struktur data anda dan menggunakan teknik pertanyaan yang sesuai, anda boleh meningkatkan prestasi anda dengan ketara. Pertanyaan Firebase untuk senario perhubungan yang kompleks.
Atas ialah kandungan terperinci Bagaimana untuk Menyoal Firebase dengan Cekap untuk Sembang yang Melibatkan Peserta Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!