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
          }
        }