AngularFire:限制为 10 个最近的寄存器
AngularFIre: LImit to 10 most recents registers
我有一个关于 firebase 的查询,但我只想显示最近的 10 个注册而不是全部
我的代码是:
videos: Observable<any[]>;
constructor(firestore: AngularFirestore,) {
this.videos = firestore.collection('videos').valueChanges();
}
有人知道最好的方法吗?
谢谢!
您可以使用 'rxjs' 中的 map
运算符对 observable 和 10 个最近的项目进行管道传输,例如
videos: Observable<any[]>;
constructor(firestore: AngularFirestore,) {
this.videos = firestore.collection('videos').valueChanges().pipe(
map(videos => videos.slice((videos.length - 10), videos.length))
)
}
为了节省制作成本,您需要保存有关文档创建时间的信息。这将允许您创建查询请求,以提供准确数量的文档并按您需要的特殊顺序发送。
videos: Observable<any[]>;
constructor(firestore: AngularFirestore,) {
async getVideos() {
this.videos = await this.firestore.collection('videos', ref =>
ref.orderBy('createdAt').limit(10)).valueChanges();
return this.videos
}
}
我有一个关于 firebase 的查询,但我只想显示最近的 10 个注册而不是全部
我的代码是:
videos: Observable<any[]>;
constructor(firestore: AngularFirestore,) {
this.videos = firestore.collection('videos').valueChanges();
}
有人知道最好的方法吗?
谢谢!
您可以使用 'rxjs' 中的 map
运算符对 observable 和 10 个最近的项目进行管道传输,例如
videos: Observable<any[]>;
constructor(firestore: AngularFirestore,) {
this.videos = firestore.collection('videos').valueChanges().pipe(
map(videos => videos.slice((videos.length - 10), videos.length))
)
}
为了节省制作成本,您需要保存有关文档创建时间的信息。这将允许您创建查询请求,以提供准确数量的文档并按您需要的特殊顺序发送。
videos: Observable<any[]>;
constructor(firestore: AngularFirestore,) {
async getVideos() {
this.videos = await this.firestore.collection('videos', ref =>
ref.orderBy('createdAt').limit(10)).valueChanges();
return this.videos
}
}