如何获取 Firebase 快照长度?

Posted

技术标签:

【中文标题】如何获取 Firebase 快照长度?【英文标题】:How to get Firebase snapshots length? 【发布时间】:2020-03-05 15:41:30 【问题描述】:

我已经用 Firebase 创建了一个应用,但是我遇到了一个问题,那就是我

无法计算 listview.builder 中的快照长度。

StreamBuilder(
        stream:
            _firestore.collection('/posts/$widget.uid/comments').snapshots(),
        builder: (context, snapshot) 
          final data = snapshot.data.documents;

          if (!snapshot.hasData) 
            return SpinKitChasingDots(
              color: Colors.lightGreen,
            );
          
          return ListView.builder(
            itemCount: snapshot.data.documents.length,//Here is the problem
            itemBuilder: (context, index) 
              return PostComment(
                commentText: data[index]['commentText'],
                userImage: data[index]['userImage'],
                userName: data[index]['userName'],
              );
            ,
          );
        ,
      ),

当我运行它时,它给了我一个错误,它实际上没有一个称为长度的 getter。

【问题讨论】:

【参考方案1】:

尝试在 StreamBuilder 中显式声明类型

StreamBuilder<QuerySnapshot>(
        stream: _firestore.collection('...').snapshots(),

https://dart.dev/guides/language/sound-problems#runtime-errors

【讨论】:

一切都很好,除了我上面提到的显示它 您能否确认您尝试了答案但没有帮助? 我没有注意到您声明的数据类型并且它有效,谢谢【参考方案2】:

你可以试试这个:

Firestore.instance.collection('/posts/$widget.uid/comments').snapshots().length.toString();

【讨论】:

以上是关于如何获取 Firebase 快照长度?的主要内容,如果未能解决你的问题,请参考以下文章

Swift iOS Firebase - 如何结合 queryOrdered(byChild) 和 GeoFire observe(.keyEntered) 来同时获取快照和位置结果?

如何快速从 firebase 获取用户的特定数据?

如何将firebase快照值从一个函数提取到另一个函数变量?

Firebase:如何获取不匹配图像的差异并从存储中删除图像

Firebase JavaScript 快照获取值

从 Firebase 数据快照获取 JSON 键值