如何在Firebase中获取两个节点的值?

时间:2017-09-12 20:01:29

标签: javascript firebase firebase-realtime-database

我使用firebase doc作为参考来执行以下代码。我尝试其他组合没有成功。没有对数据库的安全访问权。

那么,这段代码如何同时读取或获取两个节点的值?

function gofb(d) {
  var r = d.getAttribute("data-id");
  var p1name, p2name, pa1, pa2, pb1, pb2;
  return firebase.database().ref('/wc2017/' + r + '/t1').once('value').then(
    function(snapshot) {
     pa1 = snapshot.val().pd1;
     pa2 = snapshot.val().pd2;
     p1name = pa1 + "|" + pa2;
  });

  return firebase.database().ref('/wc2017/' + r + '/t2').once('value').then(
    function(snapshot) {
     pb1 = snapshot.val().pd1;
     pb2 = snapshot.val().pd2;
     p2name = pb1 + "|" + pb2;
  });

  return firebase.database().ref('/wc2017/' + r).update({
   a0_start: firebase.database.ServerValue.TIMESTAMP});

  console.log(t1name);
  console.log(t2name);
}

1 个答案:

答案 0 :(得分:1)

您只需获取父对象值的快照即可。并获得您想要的价值。请参阅以下代码。

firebase.database().ref('/wc2017/' + r).once('value',function(snapshot){

sValue = snapshot.val();
pa1t1 = sValue.t1.pd1;
pa2t1 = sValue.t1.pd2;

pb1t2 = sValue.t2.pd1;
pb2t2 = sValue.t2.pd2;

});