Javascript 更新Firebase时如何更新HTML表?

Javascript 更新Firebase时如何更新HTML表?,javascript,html,firebase,firebase-realtime-database,Javascript,Html,Firebase,Firebase Realtime Database,我正在使用添加的child_和更改的child_。添加的孩子工作得非常好,但更改的孩子在我的表中复制了一个。请帮我克服这个困难。这是我的密码: var rootRef = firebase.database().ref().child("REPORTS").child(date); rootRef.on("child_added", function(snapshot){ var date = snapshot.child("dateAndTime").val(); var l

我正在使用添加的child_和更改的child_。添加的孩子工作得非常好,但更改的孩子在我的表中复制了一个。请帮我克服这个困难。这是我的密码:

var rootRef = firebase.database().ref().child("REPORTS").child(date);

rootRef.on("child_added", function(snapshot){
    var date = snapshot.child("dateAndTime").val();
    var lat = snapshot.child("latitude").val();
    var long = snapshot.child("longitude").val();
    var link = snapshot.child("link").val();
    var report = snapshot.child("report").val();
    var status = snapshot.child("status").val();
    var needs = snapshot.child("needs").val();


    $("#table_body").append("<tr><td>" +date+"</td><td>"+report+"</td><td>"+lat+"</td><td>"+long+"</td><td>"+status+"</td><td>"+needs+"</tr>");

});

rootRef.on("child_changed", function(snapshot){
    var date = snapshot.child("dateAndTime").val();
    var lat = snapshot.child("latitude").val();
    var long = snapshot.child("longitude").val();
    var link = snapshot.child("link").val();
    var report = snapshot.child("report").val();
    var status = snapshot.child("status").val();
    var needs = snapshot.child("needs").val();


    $("#table_body").append("<tr><td>" +date+"</td><td>"+report+"</td><td>"+lat+"</td><td>"+long+"</td><td>"+status+"</td><td>"+needs+"</tr>");

});
var rootRef=firebase.database().ref().child(“报告”).child(日期);
rootRef.on(“添加的子对象”,函数(快照){
var date=snapshot.child(“dateAndTime”).val();
var lat=snapshot.child(“纬度”).val();
var long=snapshot.child(“经度”).val();
var link=snapshot.child(“link”).val();
var report=snapshot.child(“report”).val();
var status=snapshot.child(“status”).val();
var needs=snapshot.child(“needs”).val();
$(“#表体”)。追加(“+date+”“+report+”“+lat+”“+long+”“+status+”“+needs+”);
});
rootRef.on(“child_changed”,函数(快照){
var date=snapshot.child(“dateAndTime”).val();
var lat=snapshot.child(“纬度”).val();
var long=snapshot.child(“经度”).val();
var link=snapshot.child(“link”).val();
var report=snapshot.child(“report”).val();
var status=snapshot.child(“status”).val();
var needs=snapshot.child(“needs”).val();
$(“#表体”)。追加(“+date+”“+report+”“+lat+”“+long+”“+status+”“+needs+”);
});

当在firebase中更新某个值时,我如何更新我的表,而不是添加一个新的HTML元素,处理
child\u更改的代码应该更新现有的HTML元素。要做到这一点,最简单的方法是确保根据
快照为HTML元素提供
id

var rootRef = firebase.database().ref().child("REPORTS").child(date);

rootRef.on("child_added", function(snapshot){
    var date = snapshot.child("dateAndTime").val();
    var lat = snapshot.child("latitude").val();
    var long = snapshot.child("longitude").val();
    var link = snapshot.child("link").val();
    var report = snapshot.child("report").val();
    var status = snapshot.child("status").val();
    var needs = snapshot.child("needs").val();


    $("#table_body").append("<tr id='"+snapshot.key+"'><td>" +date+"</td><td>"+report+"</td><td>"+lat+"</td><td>"+long+"</td><td>"+status+"</td><td>"+needs+"</tr>");

});

处理
child\u更改的
代码应该更新现有的HTML元素,而不是附加新的HTML元素。要做到这一点,最简单的方法是确保根据
快照为HTML元素提供
id

var rootRef = firebase.database().ref().child("REPORTS").child(date);

rootRef.on("child_added", function(snapshot){
    var date = snapshot.child("dateAndTime").val();
    var lat = snapshot.child("latitude").val();
    var long = snapshot.child("longitude").val();
    var link = snapshot.child("link").val();
    var report = snapshot.child("report").val();
    var status = snapshot.child("status").val();
    var needs = snapshot.child("needs").val();


    $("#table_body").append("<tr id='"+snapshot.key+"'><td>" +date+"</td><td>"+report+"</td><td>"+lat+"</td><td>"+long+"</td><td>"+status+"</td><td>"+needs+"</tr>");

});

谢谢,先生。你的回答很清楚。现在可以了,谢谢,先生。你的回答很清楚。现在它工作得很好。