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
Barbara Streisandasal
2024-12-31 14:04:14868semak imbas

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
    }
});

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
  }
}

Pertanyaan Kemas Kini:

ref.child('userChatrooms').child(username)

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!

Kenyataan:
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