javascript - 使用此脚本向对象添加元素时如何获取文档的键?
问题描述
这是我的数据库的结构
root
datizme
site10
site22
site35
下面的脚本允许我获取在我的对象 datizme 中所做的所有修改,但我只想获取添加或删除的文档或已进行修改的文档的键。我没有找到我力所能及的教程
( function() {
// Your web app's Firebase configuration
const config = {
apiKey: "AIzaSsfxIeIaC1bruN12g",
authDomain: "c-3d423.firebaseapp.com",
databaseURL: "https://c-3d423.firebaseio.com",
projectId: "c-3d423",
storageBucket: "c-3d423.appspot.com",
messagingSenderId: "745995",
appId: "1:74591495:web:edec51656db3df2"
};
// Initialize Firebase
firebase.initializeApp(config);
const preObject = document.getElementById("datizme");
var dbRefObject = firebase.database().ref('datizme');
dbRefObject.on('value', snap => {
preObject.innerText = JSON.stringify(snap.val(), null, 3);
});
}());
解决方案
如果要检测哪个子节点datizme
被更改,可以使用child_changed
事件:
dbRefObject.on('child_changed', snap => {
console.log(snap.key+" was changed, its new value is "+snap.val());
});
child_added
添加 ( ) 或移除 ( )孩子时也有类似的事件child_removed
。
推荐阅读
- java - 用Java解压压缩的ubuntu lz4文件
- javascript - PayPal JavaScript SDK 客户端 JS,获取功能如何工作?
- java - Java - 从对象中获取具有公共超类的字段列表
- javascript - 如何改进这个简单的图片库代码?
- android - Admob 横幅广告已停止显示
- python - 如何比较两个列表中每个值的索引python
- mysql - mysql。选择没有 1 天
- java - 如何在 JUNG 中修改图形外观
- powershell - Powerhell 的部分管道被跳过
- angular - @HostListener('window:keydown') 与 @HostListener('window:keydown.arrowup') + @HostListener('window:keydown.arrowdown')?