Javascript 是否可以使用angularfire仅获取更新的值?

Javascript 是否可以使用angularfire仅获取更新的值?,javascript,firebase,firebase-realtime-database,angularfire,Javascript,Firebase,Firebase Realtime Database,Angularfire,我正在使用angularfire和实时数据库 我有一个这样的数据库: actions:{ uid1: { meta... }, uid2: { meta... }, uid3: { meta... }, uid4: { meta... }, } 我制作了一个编辑器来展示所有这些动作。现在,假设我添加了一个操作(uid5)我的valueChanges方法在我只需要更新的值时将所有uid发送回我 我会做一些像这样的事情 ngOnIni

我正在使用angularfire和实时数据库 我有一个这样的数据库:

actions:{
  uid1: {
    meta...
  },
  uid2: {
    meta...
  },
  uid3: {
    meta...
  },
  uid4: {
    meta...
  },
}
我制作了一个编辑器来展示所有这些动作。现在,假设我添加了一个操作(
uid5
)我的
valueChanges
方法在我只需要更新的值时将所有uid发送回我

我会做一些像这样的事情

ngOnInit(){
  this.db.object(`actions`).valueChanges().subscribe(
    (actions) => console.log(actions) // here I get first time uid1{}, uid2{} ..., uid4{}
    //second time after adding uid5 I would get uid5{} only.
  )
}

那么,有没有可能,有没有什么特别的事件或其他什么,或者我应该提出一个功能请求?

Firebase或AngularFire中没有内置任何东西可以只获取新的项目,所以你必须自己构建一些东西

两个最常见的选项:

  • 在每个节点中存储一个
    timestamp
    值,然后使用类似
    ref.orderBy(“timestamp”).startAt(Date.now())
    的内容仅查询“now”之后的项目
  • 从现在开始,使用类似于
    ref.orderByKey().startAt(ref.push().key)
    的命令

  • 我在看那个,但是“孩子改变了”和“孩子被移除了”呢。您的技术可以工作,但只适用于添加的元素,而不是更改和更新。提前谢谢。这实际上取决于您存储的时间戳。例如,如果存储节点上次修改的时间戳,则可以查询项目的修改时间。如果为true,但添加/删除/更改的子项如何?我已经实现了其中的一些项,看起来它正在工作。有什么区别吗。。。侦听
    child\uu
    事件对从服务器检索的数据没有影响。因此,如果您只收听
    child\u changed
    ,您的应用程序仍在检索at
    actions
    下的所有节点。删除时:在这种情况下,您必须在数据库中存储某个已删除的事实。