在一个组件中,我想从FireStore中提取一系列项目,例如 . 从0到5,从5到10等我在FireStore的文档中找到了this,但他们不使用AngularFire2,因此我更难以重构为更大的混乱 . 我只是通过以下方式使其工作:
service ->
topFirstScores(): AngularFirestoreCollection<Score> {
return this.fireRef.collection('scores', r => r
.orderBy('score', 'desc').limit(6)
);
}
component ->
$scores = new Subject();
this.scores$ = this.$scores.asObservable();
if (this.scores === 'first') {
this.scoreS.topFirstScores().valueChanges().take(1)
.subscribe(_ => this.$scores.next(_.splice(0, 3)))
} else {
this.scoreS.topFirstScores().valueChanges().take(1)
.subscribe(_ => this.$scores.next(_.splice(3, 3)))
}
但这似乎更像是一种解决方法 . 谁能翻译这个:
var first = db.collection("cities")
.orderBy("population")
.limit(25);
return first.get().then(function (documentSnapshots) {
// Get the last visible document
var lastVisible = documentSnapshots.docs[documentSnapshots.docs.length-1];
console.log("last", lastVisible);
// Construct a new query starting at this document,
// get the next 25 cities.
var next = db.collection("cities")
.orderBy("population")
.startAfter(lastVisible)
.limit(25);
});
那最好是 AngularFirestoreCollection<T>
?
2 回答
我有同样的问题,这就是我做的 .
服务
组件
我不知道FireBase,但是当你询问所有项目然后过滤时我真棒 .
如果你创建一个方法,包括参数,页面和大小以及一个数组lastScore I supouse,你可以做一些(注意:我没有Firestone,最可能的,我错了,代码很糟糕)