根据要在页面中取消应用的用户信息显示Firestore数据



我有一个Firestore数据库,其中包含旅行相关的信息并存储在数据库中,我有一个预览按钮,当用户单击它时,它应该显示来自Firestore数据库的信息。我是新来的,我试着像下面这样编码,但它不显示数据,除了循环或短信。

另外,我想开发一个客户声明表单,用户将阅读政策和条件,并按约定单击复选框。请帮我解决这个问题。此外,我想开发一个客户声明表单,用户将阅读政策和条件,并按约定单击复选框。

class DataShowState extends State<DataShow> {
DataShowState();
User? user;

Widget build(BuildContext context) {
return Scaffold(
body: StreamBzuilder(
stream: FirebaseFirestore.instance
.collection('traveldetails')
.doc(user?.uid)
.collection("travels")
.snapshots(),
builder:
(BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (!snapshot.hasData) {
return Text("No Data");
// Center(
//   child: CircularProgressIndicator(),
// );
}

return ListView(
children: snapshot.data!.docs.map((document) {
return Center(
child: Container(
width: MediaQuery.of(context).size.width / 1.2,
child: Column(
children: <Widget>[
Padding(
padding: EdgeInsets.only(
top: 20,
bottom: 5,
),
child: Text(document['travelname'],
style: GoogleFonts.quicksand(
fontStyle: FontStyle.normal)),
),
],
),
),
);
}).toList(),
);
}),
);
}
}

Scaffold()替换为Container(),StreamBuilder中有一个拼写错误,您需要纠正。

其余代码似乎没有问题。

如果您想在加载数据时实现CircularProgressIndicator(),请在生成器snapshot.connectionState == ConnectionState.loading下创建If条件并返回CircularProgressIndicator()

示例代码:

builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot){
if(snapshot.connectionState == ConnectionState.loading){
return CircularProgressIndicator();
}
//... Write rest of your if statements as it is.
}

这个应该能起作用。请分享您呼叫DataShow()的文件声音

最新更新