对于与用户 uid 相同的文档 ID,如何从 Firestore 中仅检索一个用户的数据?
Posted
技术标签:
【中文标题】对于与用户 uid 相同的文档 ID,如何从 Firestore 中仅检索一个用户的数据?【英文标题】:For document id same as user uid, how to retrieve only one user's data from firestore? 【发布时间】:2020-11-16 00:26:43 【问题描述】:我正在使用 Dart、Flutter 和 Firebase 制作应用程序。有注册/登录,我使用 cloud firestore 作为数据库。在我的 Cloud Firestore 中,用户 UID 是文档 ID,我对每个用户都有特定的数据(结果)。
我只想检索当前用户的数据(存储在 Firestore 中)并显示在屏幕上。This is my cloud firestore image
void submitit(double n, m) async
final FirebaseUser user = await FirebaseAuth.instance.currentUser();
final String usr = user.uid.toString();
if (_formKey.currentState.validate())
_formKey.currentState.save();
result = n * m;
DatabaseService(uid: usr).updateUserData(result.toString()); // to store data in firestore
//data is successfully stored in firestore.
//now retrive this user's result only from firestore
有很多用户已经注册并登录。 现在我只想从云 Firestore 中检索该用户的结果并显示在屏幕上。 我需要一个通用的解决方案,以便无论当前用户是谁,都能检索到相应的结果并将其显示在屏幕上。
【问题讨论】:
【参考方案1】:要检索当前登录用户的数据,你可以这样做:
Future<DocumentSnapshot> getData() async
var firebaseUser = await FirebaseAuth.instance.currentUser();
return await Firestore.instance.collection("result").document(firebaseUser.uid).get();
【讨论】:
使用这个我得到的值为 result: 98190.3,你能告诉我,我怎样才能只得到它的数字??? 请用您用来在此处显示和链接我的代码提出不同的问题,以便我检查它以上是关于对于与用户 uid 相同的文档 ID,如何从 Firestore 中仅检索一个用户的数据?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Cloud Firestore 中获取数据,其中 user.uid 等于 Flutter 中的文档 ID?
如何根据数据库用户 id(不是 uid)设置 firebase 规则