Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Menyoal Firebase dengan Cekap untuk Sembang yang Melibatkan Peserta Tertentu?

Bagaimana untuk Menyoal Firebase dengan Cekap untuk Sembang yang Melibatkan Peserta Tertentu?

Susan Sarandon
Lepaskan: 2025-01-01 06:28:11
asal
807 orang telah melayarinya

How to Efficiently Query Firebase for Chats Involving a Specific Participant?

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
    }
});
Salin selepas log masuk

tidak berkesan. Ini kerana:

  • Set vs Array: Senarai peserta dimodelkan sebagai tatasusunan, membenarkan penyertaan pendua. Struktur ini tidak menggambarkan dengan tepat aspek peserta yang unik.
  • Harta Tidak Terindeks: Untuk menyemak sama ada peserta hadir dalam sembang, anda perlu membuat indeks khusus untuk setiap nama pengguna.

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
  }
}
Salin selepas log masuk

Struktur ini membolehkan anda untuk cekap senarai bilik sembang pertanyaan untuk pengguna tertentu:

ref.child('userChatrooms').child('john')
Salin selepas log masuk

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)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan