【问题标题】:how can I get the length from this query snapshot on firestore firebase?如何从 firestore firebase 上的查询快照中获取长度?
【发布时间】:2021-08-06 02:55:36
【问题描述】:
我正在使用以下查询从 firebase firestore 获取视频:
FirebaseFirestore.instance.collection('videos').where('uid',isEqualTo: widget.uid).get();
我正在获取特定用户 ID 的视频,但我如何获取视频的长度,即该特定当前用户“uid”发布/存储了多少视频。我想知道用户持有的视频数量。所以基本上我需要这个来隐藏我显示视频的容器,如果这个用户 ID 没有视频。
【问题讨论】:
标签:
firebase
flutter
google-cloud-firestore
【解决方案1】:
如果我正确理解您的问题,您应该使用size 属性,例如如下。
FirebaseFirestore.instance
.collection('videos')
.where('uid',isEqualTo: widget.uid)
.get()
.then((QuerySnapshot querySnapshot) {
Print(querySnapshot.size);
});
但是,您应该注意,这意味着您每次想要获取视频数量时都要阅读与查询对应的所有文档,因此这是有代价的。如果您的收藏量很小,那么使用size 方法可能是一个不错的方法。
但是,如果集合将包含大量文档并且您经常需要获取文档数量,则最好使用另一种方法,例如维护一个或多个计数器。有关示例,请参阅以下答案:1、2 和 3。