我是firebase的新手。我只是尝试了一些例子,当我遇到它的一些事件时顺便说一句非常酷。
我在firebase数据库中保存了一些数据:
driver
-KV_Cj7sL6sg6K9E5ifh
status: "Incomplete"
困扰我的是,当孩子被更新时,触发了child_changed事件。当我访问它的数据时,我没有看到它的密钥。
我在驱动程序表中创建了一个节点(我认为一行在firebase中称为不确定的节点)。当我更改它的状态以完成它触发的 child_changed 事件时。我收到了已更新的数据包。问题是我想获得Id(KV_Cj7sL6sg6K9E5ifh)。但问题是它只向我发送状态:完整。
这是我为child_changed编写的代码:
usersRef.on("child_changed", function(data) {
var player = data.val();
console.log(player);
console.log("The new status is: "+ player.status);
});
请帮助我,我将如何收到这个ID。谢谢
答案 0 :(得分:2)
你可以得到Id孩子,请尝试以下
console.log("The new status is: "+ player.$id);
Object
返回的每个Firebase
都包含$id
属性
<强>更新:强>
你可以得到id/key
偶然Firebase
不会在孩子中返回ID,请尝试以下
console.log("The new status is: "+ data.ref.key); //it will returns -KV_Cj7sL6sg6K9E5ifh
console.log("The new status is: "+ data.ref.parent.key); //it will returns driver
答案 1 :(得分:2)
您称之为ID的内容在Firebase术语中称为密钥。要获取快照的密钥,您可以访问该快照的key
属性:
usersRef.on("child_changed", function(snapshot) {
var player = snapshot.val();
console.log(player);
console.log("The new status is: "+ player.status);
console.log("The key of the player is "+snapshot.key);
})