【发布时间】:2021-11-16 21:15:56
【问题描述】:
我制作注册系统并管理用户信息。
注册时,用户需要填写用户名,并保存在firestore中。
用户数据是这样存储的;
并尝试使用代码获取userName;
CollectionReference users = FirebaseFirestore.instance.collection('users');
return FutureBuilder<DocumentSnapshot>(
future: users.doc(FirebaseAuth.instance.currentUser!.uid).get(),
builder:
(BuildContext context, AsyncSnapshot<DocumentSnapshot> snapshot) {
if (snapshot.hasError) {
return Text("Something went wrong");
}
print("${!snapshot.hasData} ${!snapshot.data!.exists}"); // always "false true"
if (!snapshot.hasData && !snapshot.data!.exists) {
return Text("Document does not exist");
}
if (snapshot.connectionState == ConnectionState.done) {
Map<String, dynamic> data =
snapshot.data!.data() as Map<String, dynamic>;
return Text("User Name: ${data['userName']}");
}
return const CircularProgressIndicator();
},
);
但总是调用return Text("Document does not exist");,而不显示userName。
为什么userName 没有返回?我搜索了一个拼写错误,但找不到。
这个问题今天花了很多时间。谢谢。
【问题讨论】:
标签: firebase flutter dart google-cloud-firestore flutter-web