firebase 数据库查询中的多个 orderByChild 过滤器
Multiple orderByChild filter in firebase database query
我想在 angular 4 应用程序中过滤来自 firebase 数据库的数据。我需要应用两个过滤器。
- 获取所有在线用户
- 获取所有不玩的用户
我看过几篇文章,我们不能在查询中添加两个 orderByChild critarea。所以我使用了如下的地图函数,
users: FirebaseListObservable<any[]>;
public DB:
AngularFireDatabase;
constructor(private router: Router, private db: AngularFireDatabase) {
this.DB = db;
}
showPeopleList() {
this.users = <FirebaseListObservable<any>>this.DB.list('/users',
{
query: {
orderByChild: 'isOnline',
equalTo: true,
limitToLast: 20
}
}).map((items)=> {
let filteredUser: any[];
for (let item of items) {
if(items.isPlaying == false){
filteredUser.push(item);
}
}
return filteredUser;
});
}
在上面的代码中,在地图功能中,我获取了所有在线用户,但我无法根据比赛场地过滤数据。
我需要做哪些更改才能完成此操作。
您应该可以只使用 .filter
函数来完成此操作。
.filter(item => item.isPlaying === false)
在您上面的代码中,您有一个拼写错误,这也可能导致您当前的功能无法正常工作。请注意 if
语句中 items
之后的 s
。
if(items.isPlaying == false){
filteredUser.push(item);
}
我想在 angular 4 应用程序中过滤来自 firebase 数据库的数据。我需要应用两个过滤器。
- 获取所有在线用户
- 获取所有不玩的用户
我看过几篇文章,我们不能在查询中添加两个 orderByChild critarea。所以我使用了如下的地图函数,
users: FirebaseListObservable<any[]>;
public DB:
AngularFireDatabase;
constructor(private router: Router, private db: AngularFireDatabase) {
this.DB = db;
}
showPeopleList() {
this.users = <FirebaseListObservable<any>>this.DB.list('/users',
{
query: {
orderByChild: 'isOnline',
equalTo: true,
limitToLast: 20
}
}).map((items)=> {
let filteredUser: any[];
for (let item of items) {
if(items.isPlaying == false){
filteredUser.push(item);
}
}
return filteredUser;
});
}
在上面的代码中,在地图功能中,我获取了所有在线用户,但我无法根据比赛场地过滤数据。 我需要做哪些更改才能完成此操作。
您应该可以只使用 .filter
函数来完成此操作。
.filter(item => item.isPlaying === false)
在您上面的代码中,您有一个拼写错误,这也可能导致您当前的功能无法正常工作。请注意 if
语句中 items
之后的 s
。
if(items.isPlaying == false){
filteredUser.push(item);
}