如何遍历 Firestore(React 和 Firebase Web 应用程序)中的多个用户子集合?
Posted
技术标签:
【中文标题】如何遍历 Firestore(React 和 Firebase Web 应用程序)中的多个用户子集合?【英文标题】:How to loop through multiple sub-collections of users in Firestore (React & Firebase web application)? 【发布时间】:2021-07-16 14:47:27 【问题描述】:我正在制作一个以 Firebase 作为后端的 React Web 应用程序。在 Web 应用程序中,健身教练可以记录他的客户进度。每周,培训师都会提交一份包含一些进度指标(体重、血压等)的表格。
在 Firestore 中,我收集了培训师的所有客户。每个客户文档中都有一个包含每周进度指标的集合,如下所示。
我想将每个客户端的所有进度指标设置为单个 useState,以便培训师可以将其导出到 csv 文档。我的计划是使用 useEffect 来执行此操作,我在其中循环遍历所有用户进度表,但我无法让它工作。下面是我目前的 useEffect。
它会抛出以下错误:
我怎样才能解决这个问题,以便所有进度表单都在一个 useState 中?
【问题讨论】:
请将相关代码和错误信息以文本形式包含在内,而不是以图像形式。 请不要发布您的代码截图或其他文本内容。而是发布实际文本,并使用 Stack Overflow 的格式化工具进行标记。 【参考方案1】:对于此类问题,我始终建议准备好参考文档。
在这种情况下,您的snapshot
变量是QuerySnapshot
object,每个doc
都是DocumentSnapshot
object。如您所见,doc
确实没有 collection
方法,正如错误消息中所说的那样。
您正在寻找DocumentReference
object,然后您可以从中获取subcollection
。要从快照获取参考,请在其上调用ref
。
所以:
user.ref.collection("progress")...
【讨论】:
解决了问题,非常感谢!以上是关于如何遍历 Firestore(React 和 Firebase Web 应用程序)中的多个用户子集合?的主要内容,如果未能解决你的问题,请参考以下文章
React Native Firebase:如何显示 Firestore 中的文本?
将 Apple Sign In 与 React Native Firebase 和 Firestore 一起使用时,如何检查用户是不是存在?
当聊天线程有未读消息时如何显示徽章React JS,Firestore