我正在使用Angular 4 Firebase和AngularFire,我有以下firebase数据库
"users" : {
"Test1" : {
"totalscore" : 50,
"username" : "test1"
},
"Test2" : {
"totalscore" : 30,
"username" : "test2"
},
"Test3" : {
"totalscore" : 20,
"username" : "test1"
},
"Test4" : {
"totalscore" : 10,
"username" : "test1"
},
"Test5" : {
"totalscore" : 50,
"username" : "test1"
},
"Test6" : {
"totalscore" : 30,
"username" : "test2"
},
"Test7" : {
"totalscore" : 20,
"username" : "test1"
},
"Test8" : {
"totalscore" : 10,
"username" : "test1"
}
}
我阅读了firebase和AngularFire的文档,我想获取这些数据 作为一个排序列表由totalscore.I尝试了这个AngularFire link给出的所有可能的方式,但没有任何帮助。我目前得到这个代码工作正常,但它没有排序列表。
import { Component, OnInit } from '@angular/core';
import { AngularFireDatabase, FirebaseListObservable } from 'angularfire2/database';
@Component({
selector: 'app-homefiller',
templateUrl: './homefiller.component.html',
styleUrls: ['./homefiller.component.css']
})
export class HomefillerComponent implements OnInit {
topusers: FirebaseListObservable<any>;
totalscore;
list;
constructor(db: AngularFireDatabase) {
this.topusers = db.list('users', {
query: {
orderByValue: true,
limitToFirst: 10,
}
});
}
ngOnInit() {
}
}
您可以通过
帮我找一个排序列表的方法吗?&#34; totalscore:&#34;
或告诉我是否可以这样做? ?
答案 0 :(得分:1)
如果您拥有这样的数据结构,则使用orderByValue
:
"userscores" : {
"Test1" : 50,
"Test2" : 30,
"Test3" : 20
"Test4" : 10,
}
在上文中,您希望在userscores
上对每个子节点的值进行查询结果。
在您的情况下,您要排序的值位于totalscore
下的子属性users
中。所以你应该使用orderByChild:
this.topusers = db.list('users', {
query: {
orderByChild: "totalscore",
limitToFirst: 10,
}
});