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

时间:2016-11-11 06:45:10

标签: javascript firebase firebase-realtime-database

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

(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" 下获取密钥,这是一长串字母和数字,以便我可以引用该特定节点并添加数据,更改数据或更新名称等数据。

1 个答案:

答案 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 ;像这样