当集合中没有数据时显示占位符

时间:2019-05-01 20:11:39

标签: flutter google-cloud-firestore

当集合为空时,我试图显示一个Text小部件。但是,即使我的收藏集为空,我也无法满足显示Text('No Events :(');的条件。我认为这是飞镖语法错误吗?

 Container(
                  height: 400,
                   // width: 500,
                    child: StreamBuilder<QuerySnapshot>(
                      stream: Firestore.instance.collection('Events').where("bandId", isEqualTo:identifier ).snapshots(),
                      builder: (BuildContext context,
                          AsyncSnapshot<QuerySnapshot> snapshot) {

                        if (!snapshot.hasData)
                          return new Text('No Events :(');
                        switch (snapshot.connectionState) {
                          case ConnectionState.waiting:
                            return new Text('Loading...');
                          default:
                            return new ListView(
                              children: snapshot.data.documents
                                  .map((DocumentSnapshot document) {

                                return  Dismissible(
                                  key: new Key(document.documentID),
                                  onDismissed: (direction){
                                    Firestore.instance.runTransaction((transaction) async {
                                      DocumentSnapshot snapshot=
                                          await transaction.get(document.reference);
                                          await transaction.delete(snapshot.reference);


                                    });
                                    Fluttertoast.showToast(msg: "Event Deleted");
                                  },

                                  child: CustomCard(
                                    event: document['event'],
                                    location: document['location'],
                                    service: document['service'],
                                    date: document['date'],
                                  ),
                                );
                              }).toList(),
                            );
                        }
                      },
                    )),

1 个答案:

答案 0 :(得分:0)

您正在创建语法错误。 你不能使用 new Text(“ Something”); 新的ListView( // ) 您必须指定一个支持Children的Widget。 您可以使用Column来显示多个小部件。

原因:您要指定If和Switch大小写。 我建议只在Switch情况下或在If-Else条件下介绍您的逻辑。

refs/stash