我有一个数据库,其结构如下:
用户
-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。
答案 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