【发布时间】:2018-02-21 01:33:51
【问题描述】:
我想查询包含输入的 Firebase。例如在下面的数据库结构中,我想查询所有包含“4140”的节点 所以我使用这个代码
var catref = Cataloguedatabase.ref("/Listing Search/");
return catref.once('value').then(function(snapshot){
snapshot.forEach(childSnapshot => {
let snapdb = childSnapshot.val();
let key = childSnapshot.key;
//use ES6 includes function
if(key.includes(schname)){
console.log(childSnapshot.val());
var searchresults = childSnapshot.val();
var container = document.getElementById('listing_gallery');
// container.innerHTML = '';
var productCard = `
<div class="col-sm-3">
<div class="card" onclick="gotoproduct(this);" id="${key}">
`
container.innerHTML += productCard;
}
})
})
这可行,但问题是它首先查询所有子节点并通过数组排序。这对于具有少量子节点的节点是可以的,但是当它涉及到数千个子节点时,它变得不切实际。有没有我只能查询包含 firebase 中的值的键,如果没有,我还能如何实现?
【问题讨论】:
标签: javascript firebase firebase-realtime-database