如何使用 StreamBuilder 将数据从 firebase firestore 检索到颤振中,并使用 ListView.builder 显示值?

Posted

技术标签:

【中文标题】如何使用 StreamBuilder 将数据从 firebase firestore 检索到颤振中,并使用 ListView.builder 显示值?【英文标题】:How to retrieve data from firebase firestore into flutter using StreamBuilder and also used ListView.builder to show the values? 【发布时间】:2021-06-05 14:09:49 【问题描述】:

如果我降级版本它可以工作,但我在使用以下版本时遇到问题。

cloud_firestore:^1.0.0

firebase_core: ^1,0.0

和flutter sdk版本:2.0.1

我正在尝试 imaplement 代码。 streamSnapshot.data.length 不起作用

body: StreamBuilder(
        stream: FirebaseFirestore.instance
            .collection('chats/UMrLSClddfvaw9wV0hs6/messages')
            .snapshots(),
        builder: (BuildContext context, AsyncSnapshot<dynamic> streamSnapshot) =>
            streamSnapshot.connectionState == ConnectionState.none
                ? Center(
                    child: CircularProgressIndicator(),
                  )
                : ListView.builder(
                    itemCount: streamSnapshot.data,
                    itemBuilder: (context, index) => Container(
                      padding: EdgeInsets.all(8),
                      child: Text('This works'),
                    ),
                  ),
      ),

【问题讨论】:

你遇到了什么问题? itemCount 需要长度。但是我如何获得长度? 【参考方案1】:

改变这个:

builder: (BuildContext context, AsyncSnapshot<dynamic> streamSnapshot) =>

进入这个:

builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> streamSnapshot) =>

然后在itemCount你可以这样做:

itemCount: streamSnapshot.data.docs.length

【讨论】:

以上是关于如何使用 StreamBuilder 将数据从 firebase firestore 检索到颤振中,并使用 ListView.builder 显示值?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 StreamBuilder 将数据从 firebase firestore 检索到颤振中,并使用 ListView.builder 显示值?

我可以使用 streamBuilder 从 Api 获取实时数据吗

Flutter 在使用 StreamBuilder 从 firebase 加载数据之前显示红色错误屏幕,如何解决?

如何在 Flutter Web 上使用 StreamBuilder 和 Firestore?

Flutter - 使用 StreamBuilder 从 firebase 获取数据后,如何使用 ScrollController 跳转到列表视图的底部?

在颤动中使用 StreamBuilder 时将数据传递到下一个屏幕