【发布时间】:2018-03-28 14:04:26
【问题描述】:
在一个组件中,我想从 FireStore 中提取一系列项目,例如。从 0 到 5,从 5 到 10 等等。我在 FireStore 的文档中找到了this,但他们不使用 AngularFire2,所以我更努力地尝试重构,因为我得到了更大的混乱。我通过简单的splice()'ing 使它工作:
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>?
【问题讨论】:
标签: angular rxjs google-cloud-firestore angularfire2