gpt4 book ai didi

firebase - 来自Firestore的数据未显示在 ListView 中

转载 作者:行者123 更新时间:2023-12-03 04:43:32 29 4
gpt4 key购买 nike

我在Firestore上有以下数据:
enter image description here
我正在使用以下代码从每个文档中获取“名称”,以显示在列表 View 中:

Widget buildUserList(BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (snapshot.hasData) {
return ListView.builder(
itemCount: snapshot.data.documents.length,
itemBuilder: (context, index) {
DocumentSnapshot user = snapshot.data.documents[index];

return ListTile(
// Access the fields as defined in FireStore
title: Text(user.data['name']),
);
},
);
} else if (snapshot.connectionState == ConnectionState.done && !snapshot.hasData) {
// Handle no data
return Center(
child: Text("No users found."),
);
} else {
// Still loading
return CircularProgressIndicator();
}
}
并在体内展示:
StreamBuilder(
stream:
Firestore.instance.collection('markers').snapshots(),
builder: buildUserList,
)
问题是列表 View 为空。我该怎么办才能解决这个问题?

最佳答案

好的,所以在运行您的代码时遇到了两个错误。第一个是ListView需要具有一定的高度,可以使用容器或大小框小部件轻松实现。下面的固定代码示例将包含一个容器来限制高度。另一个问题是ListTile窗口小部件需要在窗口小部件树中具有Material窗口小部件,并且您的窗口小部件树中可能已经有一个Material窗口小部件,而该位置只是您的问题中未包括的内容,但是如果没有,下面的代码示例也可以解决该问题。以及。希望有帮助!有任何问题请发表评论!

Widget buildUserList(BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (snapshot.hasData) {
return Container(
height: 350,
child: ListView.builder(
itemCount: snapshot.data.documents.length,
itemBuilder: (context, index) {
DocumentSnapshot user = snapshot.data.documents[index];

return Material(
child: ListTile(
// Access the fields as defined in FireStore
title: Text(user.data['first name']),
),
);
},
),
);
} else if (snapshot.connectionState == ConnectionState.done && !snapshot.hasData) {
// Handle no data
return Center(
child: Text("No users found."),
);
} else {
// Still loading
return CircularProgressIndicator();
}
}

关于firebase - 来自Firestore的数据未显示在 ListView 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62704046/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com