我试图找到一种从firebase数据库节点检索特定子集的方法,但是根据我的研究并回答这个问题,我发现它无法完成。 How do I retrieve specific child(s) from a firebase database node instead of the snapshot of everything in the node?
我认为,如果我引用阵列中的每个警报ID,然后连续获取它们的快照,我可以解决此问题。因此,我有这个文件阅读器,它从CSV文件中获取ID值并将它们分开,然后提醒每个ID值。
var reader = new FileReader();
reader.onload = function () {
var trnsarray = reader.result.split(/\s+/).splice(1).join(', ');
var newarray = trnsarray.split(',').map(parseFloat);
for (var i=0; i < newarray.length; i++) {
alert(newarray[i]);
}
相反提醒每个ID,我希望它在newarray
中获取每个ID的快照。我尝试了下面的功能但它根本不读取ID。
var dbRef = firebase.database().ref().child('Node').(newarray[i]);
dbRef.on('value', snapshot => {
console.log(snapshot)
}
如何连续获取newarray
中每个ID的快照值?如何实施?
答案 0 :(得分:0)
您在代码中忘记了孩子:
.(newarray[i]);
试试这个:
var dbRef = firebase.database().ref().child('Node');
for (var i=0; i < newarray.length; i++) {
dbRef.child(newarray[i]).on('value', snapshot => {
console.log(snapshot);
}
}
答案 1 :(得分:0)
请记住,我们可以获取快照子项,我们可以将此功能与此类代码一起使用:
var trnsarray = reader.result.split(/\s+/).splice(1).join(', ');
var beforearray = trnsarray.split(',').map(parseFloat);
var newarray = [];
var dbRef = firebase.database().ref().child('Node').orderByKey();
dbRef.on('value', snapshot => {
snapshot.forEach(childSnapshot => {
console.log(childSnapshot.key);
if(beforearray.includes(childSnapshot.key)){
console.log(childSnapshot.key + ' : ' + childSnapshot.val());
//put your code here
newarray.push(childSnapshot.key);
}
});
}