从登录用户创建的 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 的集合。在该集合中,一个文档称为。在该文档中有一个我称为 DOCUMENTS 的集合,在此声明中,我将检索所有这些文档。尝试硬编码一个假用户 ID 并首先填写 Firestore 数据。在处理检索部分之前处理上传部分可能最容易 .doc、getDocuments、document、set vs. setData 等的存在,来自您的 cmets here 和下面的答案,取决于您使用的版本。 我的 Firestore 版本是 0.13.7。我在这里问了一个新问题。也许它清楚地更好地解释了我面临的挑战。 ***.com/questions/64171621/…【参考方案2】:

使用 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 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法从 Firebase 中删除有关用户的所有数据?

使用用户 ID 从 Firebase 获取数据

如何从 firebase 数据库中获取登录用户的数据

无法从 Firebase 读取用户数据

使用firebase创建新用户时如何避免自动登录[重复]

创建 Firebase 登录并且不要更改 FirebaseAuth [重复]