如何定位firebase中某个节点的子节点?

时间:2018-06-08 01:13:35

标签: javascript html firebase firebase-realtime-database firebase-authentication

我有一个数据库,其结构如下:

用户
     -User1
     --Buisiness_Name:
     --Buisiness_Role:
      - 描述:
      - 名称:
     --Phone_Number

我有以下代码:

var ref = firebase.database().ref("users/" + user_id);
 firebase.database().ref().on('value', function(snapshot) {
   $'#bname').val((snapshot.val() && snapshot.val()));
   console.log(snapshot.val());
 });

如何使用snapshot仅定位users /目录中的某个子项?

如果我的问题不清楚,我很乐意编辑我的问题以改进它。

我还需要为每个注册用户创建一个URL。

2 个答案:

答案 0 :(得分:2)

如果你想获得像Business_Name这样的单一属性:

var ref = firebase.database().ref("users/" + user_id + "/Business_Name");
//↓ You created the reference but didn't use it
ref.on("value", function(snapshot) {
  //↓ you forgot the "(" here
  $('#bname').val((snapshot.val());
});

如果您想要获取整个文档:

var ref = firebase.database().ref("users/" + user_id);
ref.on("value", function(snapshot) {
  $('#bname').val((snapshot.val().Business_Name);
});

有关获取,设置和更新数据的更多信息,请参阅firebase docs

答案 1 :(得分:2)

如果您想获取' Phone_Number'的数据, 你可以通过以下方式获得价值:

var iterations = 4;
var button;
var body = document.querySelector("body");

for (var i = 0; i < iterations; i++) {
    button = document.createElement("button");
    button.classList.add("my-button");
    button.appendChild(document.createTextNode(i));
    button.addEventListener("click", myButtonWasClicked);
    body.appendChild(button);
}

function myButtonWasClicked(e) {
    console.log(e.target); //access to this specific button
}

如果您只想获取单个节点数据,例如&#39; Phone_Number&#39;, 您也可以将ref直接指向该节点。

snapshot.val().Phone_Number