当用户在搜索字段中输入5133-01-329-5971时,我希望能够获取
的快照5133-01-329-5971-OkqcPp3xJwfgmNinwGsKZmAa8xt1-1508951718305
5133-01-329-5971-OkqcPp3xJwfgmNinwGsKZmAa8xt1-1508966816945
因为它们包含用户输入的匹配项。
此代码将为我提供节点中的所有子项
var itemdetailref = Cataloguedatabase.ref('/Listings/');
return itemdetailref.once('value').then(function(snapshot){
})
如何获取与5133-01-329-5971匹配的所有孩子的快照?
答案 0 :(得分:1)
如果您正在寻找一个特殊的孩子,您可以在ref var中输入此字符串。像这样:
let uid = "5133-01-329-5971";
let child = "-OkqcPp3xJwfgmNinwGsKZmAa8xt1-1508966816945";
var itemdetailref = Cataloguedatabase.ref('/Listings/'+uid+child);
return itemdetailref.once('value').then(function(snapshot){
})
但是,如果你像你在你的例子中那样搜索多个孩子,你必须得到每个孩子,然后只需要包含你的用户ID。类似的东西:
var itemdetailref = Cataloguedatabase.ref('/Listings/'+uid+child);
return itemdetailref.once('value').then(function(snapshot){
snapshot.forEach(childSnapshot => {
let key = childSnapshot.key;
let uid = "5133-01-329-5971";
//use ES6 includes function
if(key.includes(uid)){
myFunction(childSnapshot.val());
}
});
})