首页 > 解决方案 > 如何从firebase集合中获取所有文档,其中每个文档都有一些子集合并且在子集合中有一个文档?

问题描述

我正在制作一个管理仪表板。我想显示所有用户的详细信息和他们的订单。当我想获取用户集合中的所有文档时,它返回空。更多在用户集合中,每个文档都有一些子集合。在帐户子集合中有一个文档存在名称详细信息,其中用户帐户详细信息可用,如快照所示。 我的代码是在此处输入图像描述在此处输入图像描述在此处输入图像描述

export function getUsers() { 
  return firebase.firestore().collection("users").get();
}

标签: node.jsreactjsfirebasegoogle-cloud-firestore

解决方案


如果您将用户的详细信息直接存储在文档中而不是“帐户”子集合中,那么获取“用户”集合将返回所有用户的文档及其数据。如果您说没有理由,那么我建议您这样做。

其他选项是collectionGroup对“帐户”使用查询,它将从名为“帐户”的子集合中获取所有文档,即为您提供每个用户的帐户详细信息。

const snap = await db.collectionGroup('account').get()
const users = snap.docs.map(d => ({id: doc.ref.parent.parent.id, data: d.data()))

这里,id是用户的文档 ID。


推荐阅读