【问题标题】:How do I see all my data that has been read in Cloud Firestore? [closed]如何查看已在 Cloud Firestore 中读取的所有数据? [关闭]
【发布时间】:2021-03-27 08:23:54
【问题描述】:

我已成功将所有用户数据读入 Cloud Firestore,但无法一次性查看所有数据。

正如您在屏幕截图中看到的,“Sara”已被读取。之前,《Mira》和《Kiena》也已经看过了。

如何在一个屏幕上同时看到“Mira”和“Kiena”以及“Sara”?我想查看已在 Cloud Firestore 中读取的所有数据。

我需要将所有这些作为我论文的记录。

我用这段代码设置了用户数据:

private DocumentReference mDocRef = FirebaseFirestore.getInstance().document("sampleData/userdata");

【问题讨论】:

  • 我不太清楚你在问什么。您在此处显示的是一个具有单个集合的数据库,该集合具有一个文档,该文档具有一个名为“名称”的字段。就是这样。我不清楚您希望看到什么。
  • 您的屏幕截图中显示的是 Firestore 控制台,它显示了数据库中包含的信息。它与阅读或写作无关。话虽如此,您可以使用控制台查看内容(如图所示),甚至添加新数据,但该功能是有限的。请注意,您的 Firestore 中没有任何与 Mira 和 Kiena 相关的数据,因此您看不到它。如果该数据存在,它将显示在控制台中。

标签: android database firebase google-cloud-firestore


【解决方案1】:

您似乎正在使用以下内容设置用户数据:

db.collection("sampleData").document("userData").set(...)

无论何时执行此代码,都会覆盖userData 中已存在的所有数据。


如果您想在每次运行代码时创建一个新文档,请执行以下操作:

db.collection("sampleData").add(...)

这将在您每次执行时生成一个具有唯一 ID 的新文档。


如果文档需要通过 Firebase 身份验证与当前用户关联,您需要使用用户的 UID 作为文档名称。看起来像这样:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
db.collection("sampleData").document(uid).set(...)

【讨论】:

  • 私有 DocumentReference mDocRef = FirebaseFirestore.getInstance().document("sampleData/userdata");我正在像这样设置用户数据。我如何实现这个代码来做你上面的代码? @Frank van Puffelen
  • 您可以将其替换为我回答中的代码 sn-ps 之一。关于它,我真的无话可说。你试过其中一种吗?结果如何?
【解决方案2】:

你需要添加这个

SetOptions.merge()

在代码中的 set 函数内

现在发生的事情是,firestore 采用 key = name 和 values = sara/mira/etc 并不断覆盖值,因为键是相同的,但是当您使用合并选项时,它不会覆盖并会显示所有在列表中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-10
    • 2021-02-22
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 2020-12-25
    • 2022-01-24
    相关资源
    最近更新 更多