从登录用户创建的 Firebase 读取数据 - Flutter [关闭]
Posted
技术标签:
【中文标题】从登录用户创建的 Firebase 读取数据 - Flutter [关闭]【英文标题】:Read data from Firebase created by loggedin user - Flutter [closed] 【发布时间】:2021-01-16 04:01:52 【问题描述】:我在网上看到了很多关于如何向 Firebase 写入和读取数据的示例。但是,我想知道如何从仅由登录用户创建的 Firebase 写入和读取数据。
我们如何将这些数据绑定到用户?
谢谢
【问题讨论】:
你试过了吗 我什么都没试过。老实说,我不知道该怎么做。文档中没有明确的方法。 没有“绑定”。只需在您为该用户读取和写入的数据路径中使用用户的 UID。实际上有很多文档和示例可以说明这一点。由您决定组织每用户数据的方案。 Flutter 和 Firebase 之间没有明确的文档,这就是我的意思。不过谢谢。 【参考方案1】:这可能取决于您的数据是如何组织的。通读此: https://firebase.google.com/docs/firestore/manage-data/structure-data
一个简单的例子:
// snippet for pulling from data once it is there
await FirebaseFirestore.instance
.collection("USERDATA")
.doc(userID)
.collection('DOCUMENTS')
.get()
// one way you might supply the function that puts data up to firestore.
uploadToCloudStorage(
userID: user.fAuthUser.uid, fileToUpload: File(filePath));
【讨论】:
因此,当我想在您的示例中检索 userData 上的数据时,是否需要在 getDocuments() 中指定源?如何获取属于 currentUser() 的文档? 嗨,斯科特。所以我现在正在尝试检索数据,但我看不到 collection('userData').doc().... .doc() 没有显示。我得到的是 .getDocuments() ,此后,我无法使用 orderBy。你能帮忙吗?谢谢。 嗨@hermie_brown。在我的示例中,“USERDATA”是我事先创建的一个集合,具有该名称。在另一个答案中,他们使用了一个示例名称“用户”。你可以选择任何你想要的东西。在此示例中,我有一个名为 USERDATA 的集合。在该集合中,一个文档称为使用 userId 作为 firebase 中文档的 docId。这是一个例子。
createOrUpdateUserData(Map<String, dynamic> userDataMap) async
FirebaseUser user = await FirebaseAuth.instance.currentUser();
DocumentReference ref =
Firestore.instance.collection('user').document(user.uid);
return ref.setData(userDataMap, merge: true);
【讨论】:
所以当我想在你的例子中检索用户数据时,我需要在 getDocuments() 中指定源吗?如何获取属于 currentUser() 的文档? 您只需要一个数据图。当您调用该函数时,您只需传递一个数据映射。 在检索数据时可以得到Id与用户id相同的文档。这样用户将获得他或她的记录以上是关于从登录用户创建的 Firebase 读取数据 - Flutter [关闭]的主要内容,如果未能解决你的问题,请参考以下文章