Javascript 删除传单地图上的所有标记

Javascript 删除传单地图上的所有标记,javascript,firebase,firebase-realtime-database,leaflet,Javascript,Firebase,Firebase Realtime Database,Leaflet,我正在尝试使用firebase构建一个跟踪驱动程序应用程序 我已经正确地检索了所有驾驶员数据,我在每个人身上做了一个标记,但我必须知道如果其中一个驾驶员改变位置进行更新,我如何删除该标记 我的Js代码: var n=0; var leadsRef = database.ref('Tracking'); leadsRef.on('value', function(snapshot) { snapshot.forEach(function(childSnapshot) { va

我正在尝试使用firebase构建一个跟踪驱动程序应用程序

我已经正确地检索了所有驾驶员数据,我在每个人身上做了一个标记,但我必须知道如果其中一个驾驶员改变位置进行更新,我如何删除该标记

我的Js代码:

var n=0;
var leadsRef = database.ref('Tracking');
leadsRef.on('value', function(snapshot) {

    snapshot.forEach(function(childSnapshot) {
      var childData = childSnapshot.val();

      console.log(" tracking The updated Chauffeur nb " +n +" " + childData.email);
      console.log(" tracking The updated Chauffeur nb " +n+ " "+ childData.latitude);
      console.log(" tracking The updated Chauffeur nb " +n+ " "+ childData.longitude);

      L.marker([parseFloat(childData.latitude), parseFloat(childData.longitude)], {icon: greenIcon}).addTo(mymap).bindPopup("I am nb "+childData.email+" hi");
    n++;
    });
});
您可以使用事件来检测
跟踪
节点的子节点何时被删除

我不知道传单,因此我不知道如何在您的情况下移除标记,但我想有一种特定的方法,因此,您可以按照以下思路进行操作:

ref.on('child_removed', function(oldChildSnapshot) {
  var oldChildData = oldChildSnapshot.val();

  L.removeMarker(...)   //Just inventing a method name here!
});

获取
,然后使用
remove()
删除:

snapshot.forEach(function(childSnapshot) {
      var childData = childSnapshot.val();
      var key = childSnapshot.key;
     database.ref('Tracking').child(key).remove();     
    });

我不需要删除firebase节点或子节点,但我需要当firebase实时数据库中的节点或值更改或删除时,我需要初始化我的地图(删除所有标记)以更新标记位置(添加新标记),然后检查重复项,但我没有看到任何关于如何使用firebase删除标记的帖子:|