如何使用抖动流从Firestore中获取数据

时间:2020-06-14 13:16:35

标签: firebase flutter dart google-cloud-firestore

StreamBuilder<QuerySnapshot>(
              stream: _fireStore.collection('messages').orderBy('creation',descending: 
                                                                              true).snapshots(),
              // ignore: missing_return
              builder: (context, snapshot) {
                if (!snapshot.hasData) {
                  return Center(
                    child: CircularProgressIndicator(
                      backgroundColor: Colors.lightBlueAccent,
                    ),
                  );
                }
//                print('i have data');
                print(snapshot.data.documents);

print(snapshot.data.documents);正在输出空值。 “创建”是添加到消防站中的时间戳字段。

this is the image of my data base

https://github.com/umakanth-pendyala/Chat-app-with-flutter-and-fire-base 是我在Github中的项目的链接。代码片段来自lib文件夹中的chat_screen页面

1 个答案:

答案 0 :(得分:2)

尝试以下操作:

              builder: (context, snapshot) {
                if (!snapshot.hasData) {
                  return Center(
                    child: CircularProgressIndicator(
                      backgroundColor: Colors.lightBlueAccent,
                    ),
                  );
                }
               else if(snapshot.hasData){             
             print(snapshot.data.documents);
           } 
  return CircularProgressIndicator();

首先,您需要返回一个小部件,然后,如果您要打印数据,则需要检查快照中是否有数据。在您的代码中,由于这是异步的,因此它将始终显示null。


完成上述操作后,还将查询更改为以下内容:

_fireStore.collection('messages').orderBy('created',descending: true).snapshots(),

由于您在文档中有一个名为created的字段,而不是creation