class Profile extends StatefulWidget {
@override
_ProfileState createState() => _ProfileState();
}
class _ProfileState extends State<Profile> {
Future<DocumentSnapshot> getData() async {
return await FirebaseFirestore.instance
.collection('user')
.doc(FirebaseAuth.instance.currentUser.uid)
.get();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Profile'),
),
body: FutureBuilder(
future: getData(),
builder: (context, AsyncSnapshot<DocumentSnapshot> snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
if (snapshot.data.data() == null)
return Center(child: Text((snapshot.data.data()).toString()));
else
return ListView.builder(
shrinkWrap: true,
itemCount: 1,
itemBuilder: (BuildContext context, int index) {
return ListTile(
title: Text(snapshot.data.data()['email']),
);
});
} else if (snapshot.connectionState == ConnectionState.none) {
return Text("No data");
} else
return CircularProgressIndicator();
},
),
);
}
}
这段代码总是显示'null‘。snapshot.data.data()为空的原因是什么?我是一个新的未来的建设者,我不明白什么可能是这个错误的原因。
发布于 2021-04-10 00:54:53
只需使用snapshot.data==null
或!snapshot.exists
https://stackoverflow.com/questions/67024229
复制相似问题