flutter中的firestore访问n-th文档



我首先要确定我的集合的长度(即我的集合中有多少个文档?(,然后随机获取其中一个文档并在其中显示某些字段。

在我的Scaffold中,到目前为止,我有以下StreamBuilder

 StreamBuilder(
          stream: _wordsFoods.snapshots(),
          builder: (context, snapshot){
            return _buildList(context, snapshot.data.documents);
      }
)

_buildList返回集合"单词"的长度:

Widget _buildList(BuildContext context, List<DocumentSnapshot> snapshot)  {
    return Center(child: Text(snapshot.length.toString()));
  }

但是,我现在如何说我想要(例如(我的收藏中的第二个文档?我该如何与查询连接,因此我可以说我需要在收藏的第二个文档中某个字段?

在云firestore中没有内置计数操作。要确定文档的数量,您必须检索所有文件,或者保留一个单独的计数器。由于检索所有文档以确定一个数字是高度浪费的带宽,因此大多数开发人员都选择第二个选项,在其数据库中的单独文档中实现计数器字段,然后在每个添加/删除操作中更新该功能。

也没有操作以Firestore的客户端SDK中的某个偏移量获取文档。尽管服务器端Admin SDK确实提供了offset()方法,但该方法下的该方法实际上读取了您要跳过的所有文档。因此,尽管它可以节省这些文档的带宽,但仍会阅读并充电给您的配额。

要有效地从Firestore检索随机文档,请在此处查看Dan的答案:Firestore:如何在集合中获取随机文档

最新更新