Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript Firebase中获取子节点的密钥_Javascript_Firebase_Firebase Realtime Database - Fatal编程技术网

在JavaScript Firebase中获取子节点的密钥

在JavaScript Firebase中获取子节点的密钥,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我正在尝试从子节点数据获取密钥 $(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

我正在尝试从子节点数据获取密钥

$(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(名称)是无效路径
。还说,

路径必须是非空字符串,并且不能包含“.”、“$”、“[”或“]”

当前,当我在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);
            });

请记住一件事,如果您使用高于3.x的firebase版本意味着使用“键”,那么如果您低于3.x的版本意味着使用“键()”,就像这样
fb_ref.push({
              name: name
}).then(function(fb_ref){
   console.log(fb_ref.key);
})