首页 > 解决方案 > 使用此脚本向对象添加元素时如何获取文档的键?

问题描述

这是我的数据库的结构

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);
      
  });


}());

标签: javascriptfirebasefirebase-realtime-database

解决方案


如果要检测哪个子节点datizme被更改,可以使用child_changed事件:

  dbRefObject.on('child_changed', snap => {     
      console.log(snap.key+" was changed, its new value is "+snap.val());      
  });

child_added添加 ( ) 或移除 ( )孩子时也有类似的事件child_removed


推荐阅读