【发布时间】:2022-01-24 03:08:05
【问题描述】:
我想在每次用户登录时从 firebase firestore 中检索 userName。所以我不想使用来自 firebase 的用户 ID 检索用户数据并显示它。
我在下面附上了我当前的代码。
如何调整以下代码以使用 user_ID 作为主键从 firestore 获取 userName?
当前代码:
类 GetUserName 扩展 StatelessWidget {
final String documentId;
GetUserName(this.documentId);
@override
Widget build(BuildContext context) {
CollectionReference users = FirebaseFirestore.instance.collection('users');
return FutureBuilder<DocumentSnapshot>(
future: users.doc(documentId).get(),
builder:
(BuildContext context, AsyncSnapshot<DocumentSnapshot> snapshot) {
if (snapshot.hasError) {
return Text("Something went wrong");
}
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("Hello, ${data['userName']}");
}
return Text("loading");
},
);
}
}
提前谢谢你:)
【问题讨论】:
-
您是否使用 Firebase 身份验证?
-
是的,我正在使用 firebase 身份验证,并且在 firebase 身份验证中可以使用
User UID。我也有那个 firrbase auth UserId 作为我在云 Firestore 中的Document Id。
标签: firebase flutter dart google-cloud-firestore