Javascript 特定快照的Firestore查询子集合
非常简单,我想查询快照的子集合并将其返回到前端 以下是示例。Javascript 特定快照的Firestore查询子集合,javascript,firebase,google-cloud-firestore,google-cloud-functions,Javascript,Firebase,Google Cloud Firestore,Google Cloud Functions,非常简单,我想查询快照的子集合并将其返回到前端 以下是示例。 const docUser = await db.collection('users').where("slug", "==", req.body.slug).limit(1).get(); if (docUser.empty) return res.status(404).send({ message: 'Could not find user.' }); const collectionProjects = docUser.do
const docUser = await db.collection('users').where("slug", "==", req.body.slug).limit(1).get();
if (docUser.empty) return res.status(404).send({ message: 'Could not find user.' });
const collectionProjects = docUser.docs[0].collection('projects'); // Err.
return res.status(200).send({ projects: collectionProjects.data() });
这是我得到的错误。
const docUser = await db.collection('users').where("slug", "==", req.body.slug).limit(1).get();
if (docUser.empty) return res.status(404).send({ message: 'Could not find user.' });
const collectionProjects = docUser.docs[0].collection('projects'); // Err.
return res.status(200).send({ projects: collectionProjects.data() });
TypeError:docUser.docs[0]。集合不是函数
我应该如何返回我的项目
?docUser
是一个重要的问题。通过执行docUser.docs[0]
。您需要使用此QueryDocumentSnapshot
的属性,以获取一个DocumentReference
,您可以在其上调用该方法
然后再次使用该方法,如下所示:
const docUser = await db.collection('users').where("slug", "==", req.body.slug).limit(1).get();
if (docUser.empty) return res.status(404).send({ message: 'Could not find user.' });
const collectionProjects = await docUser.docs[0].ref.collection('projects').get();
//See above the addition of ref
然后使用collectionProjects
,即QuerySnapshot
,执行您想要的任何操作。但是请注意,您不能执行collectionProjects.data()
,因为QuerySnapshot
没有任何data()
方法。您可能应该再次使用,docs
docUser
是一个。通过执行docUser.docs[0]
。您需要使用此QueryDocumentSnapshot
的属性,以获取一个DocumentReference
,您可以在其上调用该方法
然后再次使用该方法,如下所示:
const docUser = await db.collection('users').where("slug", "==", req.body.slug).limit(1).get();
if (docUser.empty) return res.status(404).send({ message: 'Could not find user.' });
const collectionProjects = await docUser.docs[0].ref.collection('projects').get();
//See above the addition of ref
然后使用
collectionProjects
,即QuerySnapshot
,执行您想要的任何操作。但是请注意,您不能执行collectionProjects.data()
,因为QuerySnapshot
没有任何data()
方法。您可能应该使用或再次使用文档
您希望它返回什么?如果您试图对另一个集合进行第二次查询,则需要使用另一个get()
编写该代码。您希望它返回什么?如果试图对另一个集合进行第二次查询,则需要使用另一个get()
编写该代码。