【问题标题】:How can I acess a document field using document id from cloud firestore?如何使用 Cloud Firestore 中的文档 ID 访问文档字段?
【发布时间】:2023-01-01 02:45:38
【问题描述】:
我想从 cloud firestore 访问我的文档字段“uname”。我将 uid 和文档 id 设为相同,当我尝试访问文档字段时,它显示错误 Bad state: field does not exist within the DocumentSnapshotPlatform
这是我的代码
final userData = FirebaseFirestore.instance
.collection("Users")
.doc(FirebaseAuth.instance.currentUser!.uid)
.get()
.then((value) => print(value["uname"]));
【问题讨论】:
标签:
flutter
firebase
dart
google-cloud-firestore
【解决方案1】:
您必须使用data()getDocumentSnapshot的数据,然后访问uname。
尝试用value.data()替换value
final userData = FirebaseFirestore.instance
.collection("Users")
.doc(FirebaseAuth.instance.currentUser!.uid)
.get()
.then((value) => print((value.data())["uname"]));
【解决方案2】:
get() 的返回实际上是一个DocumentSnapshot,您需要访问data() 以获取文档字段的Map<String, dynamic>,然后从中访问"uname" 值,如下所示:
final userData = FirebaseFirestore.instance
.collection("Users")
.doc(FirebaseAuth.instance.currentUser!.uid)
.get()
.then((value) {
final documentData = value.data() as Map<String, dynamic>; // this is your document data
print(documentData["uname"]) // this is you need to access the name field
});