我正在尝试从子节点数据中获取密钥。
(defun supersets (sets)
(remove-if (lambda (set)
(some (lambda (set2)
(unless (eq set set2)
(subsetp set set2)))
sets))
sets))
在快照功能中,当我控制台登录$(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
错误。还说,
路径必须是非空字符串,且不能包含“。”,“#”,“$”,“[”或“]”
目前,当我在Firebase上创建数据时,它看起来像这样:
.child(name) is an invalid path
我需要在-players
-Johnson
-KWH4mjWbOuptod_vV1o
name: "ajks"
下获取密钥,这是一长串字母和数字,以便我可以引用该特定节点并添加数据,更改数据或更新名称等数据。
答案 0 :(得分:1)
试试这种方式
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);
})
请记住一件事,如果您使用3.x以上的firebase版本意味着使用" key",以防您的版本小于3.x意味着使用" key()&#34 ;像这样