私はfirebaseに地域辞書アプリを作ろうとしています。OrderByChild、equalTo、limitToFirstクエリデータベース全体をロードしています
データ構造の画像:改ページが正常に動作のためのData structure
OrderByKeyとlimitToFirstクエリは、それだけで照会データをロードしています。以下のコードサンプル -
db.ref('dictionary')
.orderByKey()
.startAt(String(this.perpage * (this.page - 1) + 1))
.limitToFirst(this.perpage)
.once('value')
.then((snapshot) => {
vm.words = []
snapshot.forEach(function (childSnapshot) {
var childKey = childSnapshot.key
var childData = childSnapshot.val()
childData.id = childKey
vm.words.push(childData)
})
vm.inProgress = false
})
しかし、私はorderByChild('word').equalTo(search_query).limitToFirst(3)
を使用してクエリを実行していたとき、それは(のWebSocketから検査)一度にすべての176023件のレコードをフェッチしています。以下のサンプルコード -
db.ref('dictionary')
.orderByKey()
.orderByChild('word')
.equalTo(this.search + '')
// .startAt(String(25 * (this.page - 1) + 1))
.limitToFirst(3)
.on('value', (snapshot) => {
console.log(snapshot)
snapshot.forEach(function (childSnapshot) {
var childKey = childSnapshot.key
var childData = childSnapshot.val()
childData.id = childKey
vm.words.push(childData)
})
vm.inProgress = false
}, (error) => {
console.log(error)
vm.inProgress = false
})
ありがとう!それは働いている。 –