Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Menyoal Sembang Firebase Dengan Cekap Berdasarkan Kehadiran Peserta?

Bagaimana untuk Menyoal Sembang Firebase Dengan Cekap Berdasarkan Kehadiran Peserta?

Barbara Streisand
Lepaskan: 2024-12-31 14:04:14
asal
850 orang telah melayarinya

How to Efficiently Query Firebase Chats Based on Participant Presence?

Cara Menyoal Sembang Berdasarkan Kehadiran Peserta

Pernyataan Masalah:

Diberikan Firebase struktur pangkalan data yang mewakili perbualan sembang dengan berbilang peserta, bagaimanakah kita boleh membuat pertanyaan dengan cekap untuk sembang yang termasuk yang khusus peserta?

Pertanyaan Semasa (Tidak Berfungsi):

return this.af.database.list('chats', {
    query: {
        orderByChild: 'participants',
        equalTo: username, // How to check if participants contain username
    }
});
Salin selepas log masuk

Isu dengan Pertanyaan Semasa:

  • Struktur data menggunakan tatasusunan untuk mewakili peserta, yang membenarkan pendua entri.
  • Firebase hanya membenarkan pengindeksan pada laluan tetap dalam objek, menjadikannya mencabar untuk menapis nilai bersarang seperti peserta/nama pengguna.

Penyelesaian Disyorkan: Terbalikkan Indeks

Untuk mengoptimumkan pertanyaan, disyorkan untuk menyongsangkan struktur indeks dengan meratakan data dan menarik perhubungan bilik sembang ke peringkat pengguna. Ini melibatkan:

  • Menyimpan satu set ID bilik sembang untuk setiap pengguna di bawah userChatrooms/{username}.
  • Menggunakan nilai true dalam set untuk menyatakan bahawa pengguna adalah peserta dalam bilik sembang.

Data Disemak Struktur:

userChatrooms: {
  john: {
    chatRoom1: true,
    chatRoom2: true
  },
  puf: {
    chatRoom1: true,
    chatRoom3: true
  }
}
Salin selepas log masuk

Pertanyaan Kemas Kini:

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

Faedah Indeks Terbalik:

  • Membenarkan mendapatkan semula senarai bilik sembang dengan cekap untuk pengguna tertentu menggunakan satu pertanyaan.
  • Menyokong pertanyaan untuk bilik sembang berdasarkan kehadiran peserta tanpa memerlukan pengindeksan dinamik.
  • Mencerminkan fungsi apl secara lebih langsung dengan memodelkan perspektif pengguna.

Atas ialah kandungan terperinci Bagaimana untuk Menyoal Sembang Firebase Dengan Cekap Berdasarkan Kehadiran Peserta?. 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