不要开火' child_changed'如果某个字段被修改

时间:2016-08-03 08:11:53

标签: firebase firebase-realtime-database

我的应用程序需要我在Heroku上托管的监控服务,它根据用户帐户的更改来监控,更正和修改数据。但是,用户帐户中的某些字段会以极快的速度更新,并且所有这些帐户都是垃圾邮件,我的数据监控服务效率非常低。

是否可以在侦听child_changed时忽略字段,以便不会触发回调并且永远不会下载数据?根据用户的速度,我可能会在我的监控应用程序上每秒下载几百个帐户,而这只会引发火灾。

以下是我正在寻找的一个例子:

{
    name: 'Jimmy',
    birthday: 'Mar 23, 1976',
    biography: 'Random text',
    interests: {
        // ...
    }
}

也许我想忽略biography字段,因此child_added功能只有在下列值之一发生更改时才会下载新帐户信息:

  • 名称
  • brithdate
  • 利益

并且如果biography字段发生更改,则应忽略数据并且不下载数据,因为它不是与我的监视器相关的字段,只是浪费带宽。

1 个答案:

答案 0 :(得分:1)

Firebase始终同步完整节点。如果要仅从节点列表中同步每个节点的子集,则应将该子集分离到其自己的顶级节点中。

profiles: {
  uidJimmy:  {
    name: 'Jimmy',
    birthday: 'Mar 23, 1976',
    biography: 'Random text',
  }
},
interests: {
  uidJimmy: {
      // ...
  }
}

使用Firebase(或大多数其他NoSQL数据库)时,您会发现这是常见的:您必须根据应用程序想要使用它的方式对数据建模。我强烈建议您在NoSQL data modeling上阅读这篇文章。