2017-07-31 36 views
0

我试图找到一种方法来从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,我希望它得到每个ID的快照newarray。我尝试了下面的函数,但它根本不读取ID。

var dbRef = firebase.database().ref().child('Node').(newarray[i]); 
dbRef.on('value', snapshot => { 
    console.log(snapshot) 
    } 

如何连续获取newarray中每个ID的快照值?这如何实现?

回答

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

newarray包含许多唯一的ID,即100002,140502,400562.所以我想根据childSnapshot.key运行每个ID并返回匹配ID的快照。这个代码if(newarray.includes(childSnapshot.key))没有成功地做到这一点。我该如何纠正它? – Ola

+0

@Ola我编辑了我的答案。如果我没有错,你想获得插入到firebase数据库中的ID吗? – faruk

+0

我非常想在firebase数据库中找到100002,140502和400562。 – Ola