Javascript 是否可以使用angularfire仅获取更新的值?
我正在使用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
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
,您的应用程序仍在检索atactions
下的所有节点。删除时:在这种情况下,您必须在数据库中存储某个已删除的事实。