angular - 过滤来自 AngularFire2 实时数据库查询的结果
问题描述
我正在尝试过滤从 AngularFire2 实时数据库查询返回的可观察列表,但过滤器似乎不适用,我得到了返回的整个列表。
我无法在网上找到太多信息,因为它似乎与使用 .pipe 之前的旧版本或新的 firestore 数据库有关。
getPosts(limit) {
return this.db.list('/reasons', ref => ref.orderByKey().limitToLast(limit)).snapshotChanges().pipe( map( (data: any[] ) => {
return data.map( post => {
const $key = post.payload.key;
const item = { $key, ...post.payload.val() };
return item;
})
.filter(post => post.flag !== true || post.privacy !== true )
}))
}
更新:
我已经让过滤工作了,但我不确定它是使用 rxjs 6 的正确方法。
我希望有人可以检查结构,而不是仅仅将其发布为答案,因为我不确定它是否真的应该是公认的答案。它显然不遵循下面建议的管道结构( map(), map(), filter() )
getPosts(limit) {
return this.db.list('/reasons', ref => ref.orderByKey().limitToLast(limit)).snapshotChanges().pipe(
map( (data: any[] ) => {
return data.map( data => {
const $key = data.payload.key;
const item = { $key, ...data.payload.val() };
return item;
}).filter(data => data.flag !== true).filter(data => data.privacy !== true)
})
);
}
解决方案
推荐阅读
- amazon-web-services - FindInMap 中的 CloudFormation 转换
- c# - 使用c#将xml数据库数据从web api转换为xamarin中的json
- java - 为什么计数结果与真实结果不符
- javascript - 在这种情况下如何使用 mongodb 聚合?
- postgresql - 如何生成 AuthenticationMD5Password 消息
- android - 如何解决这个android studio安装错误?
- lua - 将变量与 Lua 表中的所有变量进行比较?
- python - 变量 b 显示变量 a 中每个给定值的以下值
- python - python中的countif函数
- python - 如何在 python 服务器上获取客户端 IP 地址