在JavaScript Firebase中获取子节点的键
Getting the key for a child node in JavaScript Firebase
我正试图从子节点数据中获取密钥。
$(document).on('click', '#enter', getName);
function getName() {
name = $('#user').val().trim();
database.ref('players/' + name).push({
name: name
})
}
database.ref('players/' + name).child(name).on("child_added",
function(childSnapshot){
var childKey = childSnapshot.key;
var childData = childSnapshot.val;
console.log('key', childKey)
console.log('data', childData)
}, function (errorObject) {
console.log("The read failed: " + errorObject.code);
})
})
在快照功能中,当我对childKey
进行控制台日志时,它显示密钥是用户的名称,这是我在ref('players/' + name)
中创建的路径。但我需要的是嵌套在name
节点内的节点的键。我得到一个错误在我的childSnapshot
函数说.child(name) is an invalid path
。还说,
,不能包含路径必须非空字符串 ".", "#", "$", "[", 或"]"
当前,当我在Firebase上创建数据时,它看起来像这样:
-players
-Johnson
-KWH4mjWbOuptod_vV1o
name: "ajks"
我需要在johnson
下获得键,这是一长串的字母和数字,所以我可以引用特定的节点并添加数据,更改数据或更新数据,如名称。
试试这个
var fb_ref= firebase.database().ref('players/' + name)
fb_ref.push({
name: name
})
fb_ref.on('child_added', function (data) {
console.log(data.key);
});
或
fb_ref.push({
name: name
}).then(function(fb_ref){
console.log(fb_ref.key);
})
请记住一件事,如果您使用firebase版本3以上。X表示使用"key",如果你的版本小于3。X表示像这样使用"key()"
相关文章:
- 如何在javascript DOM api中获取具有给定条件的子节点
- 难以获取使用属性选择的节点的子节点
- 如何在D3.js基于力的标签布局图中获取公共子节点
- 获取下一个不工作Javascript DOM的同级父节点的子节点
- jstree jquery插件-获取父节点的所有子节点和子节点
- 如何在所有父节点上获取文件夹图标,在所有子节点上获取文件夹加图标(左侧的图标)
- 如何从jstree中的选定节点获取所有子节点
- 如何在普通 JavaScript 中获取内部子节点的最外层父节点
- 从对象变量中获取子节点
- 通过单击父名称 jsTree 获取子节点
- 获取当前节点的所有子节点
- 获取子节点的最佳方法
- 从元素获取子节点
- 获取对象树中给定节点的子节点
- 正在获取子节点的子节点
- 获取循环中引用的子节点的水平偏移位置
- firebase获取子节点的列表
- 使用Javascript或jQuery从子节点获取父跨度标题值
- 从元素中的子节点获取值
- 反应;父节点从子节点获取输入数据