Dan*_*nov 6 rxjs firebase firebase-realtime-database angularfire2 angular
我想知道是否可以在查询列表中使用"child_added"事件.像这样:
this.curUserPosts = this.af.database.list('/posts', {
query: {
orderByChild: 'user/id',
equalTo: id
}
}).$ref.on("child_added", (child) => {
console.log(child);
});
Run Code Online (Sandbox Code Playgroud)
我对以下内容感兴趣:它会起作用吗?仅当添加的子对应于查询时才会正常触发.性能如何.
而且,在firebase中处理这些查询列表的首选方法是什么?
不,这是行不通的;它不会应用查询。
ref$的属性不会FirebaseListObservable是配置查询的引用。您可以在源代码中看到这一点(构造函数的ref参数被分配给$ref属性):
Run Code Online (Sandbox Code Playgroud)return new FirebaseListObservable(ref, subscriber => { ... let queried: firebase.database.Query = ref; if (query.orderByChild) { queried = queried.orderByChild(query.orderByChild); } else if (query.orderByKey) { queried = queried.orderByKey(); } else if (query.orderByPriority) { queried = queried.orderByPriority(); } else if (query.orderByValue) { queried = queried.orderByValue(); }
但是,如果您想使用child_added自己,则可以编写自己的查询:
this.curUserPosts = this.af.database.list('/posts', {
query: {
orderByChild: 'user/id',
equalTo: id
}
});
this.curUserPosts.$ref
.orderByChild('user/id')
.equalTo(id)
.on("child_added", (child) => {
console.log(child);
});
Run Code Online (Sandbox Code Playgroud)
请注意,在您的代码中,通过调用on,$ref您的this.curUserPosts属性将被分配可观察值以外的其他内容;它将被分配给您传递给的侦听器on。
| 归档时间: |
|
| 查看次数: |
2591 次 |
| 最近记录: |