仅获取firebase中的更改节点值

仅获取firebase中的更改节点值,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,我正在使用ref.on()函数监视firebase节点的变化, 但是有一个问题,ref.on()给出了整个数据库记录。 如何仅获取状态已更改的行/节点 function watch() { riderequests.once('value', function(snapshot) { alert("change"); var newrequest = snapshot.val(); } } 要仅获取已更改的特定行/节点,则需

我正在使用
ref.on()
函数监视firebase节点的变化, 但是有一个问题,
ref.on()
给出了整个数据库记录。 如何仅获取状态已更改的行/节点

function watch()
{
    riderequests.once('value', function(snapshot)
       {
        alert("change");
        var newrequest = snapshot.val();
      }
  }

要仅获取已更改的特定行/节点,则需要在
ref()
中引用这些节点,例如:

users
  userid
      name:peter
  userid
      name: john
然后,要仅获取更改的节点,可以执行以下操作:

 ref().child("user").child(userid); //this will only give you the change in the logged in userid node
此外,您还可以使用如下查询:

orderByChild("userid").equalTo(username);
这将只为您提供该特定节点

开启

侦听特定位置的数据更改

您还可以通过在检索时执行以下操作来访问特定的节点更改:

 var newrequest = snapshot.val().name;

假设
name
是firebase数据库中的一个节点。

要仅获取已更改的特定行/节点,则在
ref()
中,您需要引用这些节点,例如:

users
  userid
      name:peter
  userid
      name: john
然后,要仅获取更改的节点,可以执行以下操作:

 ref().child("user").child(userid); //this will only give you the change in the logged in userid node
此外,您还可以使用如下查询:

orderByChild("userid").equalTo(username);
这将只为您提供该特定节点

开启

侦听特定位置的数据更改

您还可以通过在检索时执行以下操作来访问特定的节点更改:

 var newrequest = snapshot.val().name;

假设
name
是firebase数据库中的一个节点。

firebase提供事件
child\u added
child\u changed
child\u removed
,用于处理从firebase添加、修改和删除子节点的不同事件。读这个

根据Firebase文档:-

在任何时候启动子节点时都会触发子节点更改事件 被改进的。这包括对子代后代的任何修改 节点。它通常与添加的child_和 删除子项以响应对项目列表的更改。快照 传递给事件回调的包含子级的更新数据

要获取更改节点的详细信息,请使用
child\u changed
事件。基本上,只要子节点发生更改,就会触发此事件。它将生成已更改节点的快照

riderequests.on('child_changed', function(snapshot){
    var newrequest = snapshot.val();
    console.log(newrequest);
});

Firebase提供事件
child\u added
child\u changed
child\u removed
,用于处理从Firebase添加、修改和删除子节点的不同事件。读这个

根据Firebase文档:-

在任何时候启动子节点时都会触发子节点更改事件 被改进的。这包括对子代后代的任何修改 节点。它通常与添加的child_和 删除子项以响应对项目列表的更改。快照 传递给事件回调的包含子级的更新数据

要获取更改节点的详细信息,请使用
child\u changed
事件。基本上,只要子节点发生更改,就会触发此事件。它将生成已更改节点的快照

riderequests.on('child_changed', function(snapshot){
    var newrequest = snapshot.val();
    console.log(newrequest);
});

答案对你有帮助吗?答案对你有帮助吗?