非常简单,我想查询快照的子集合并将其返回到前端。
以下是示例。
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] .collection不是函数
我应该如何退还我的projects
?
答案 0 :(得分:2)
docUser
是QuerySnapshot
。通过执行docUser.docs[0]
,您将获得一个QueryDocumentSnapshot
。您需要使用此QueryDocumentSnapshot
的{{3}}属性,以获取可以在其上调用ref
方法的DocumentReference
。
然后再次使用collection()
方法,如下所示:
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()
,因为data()
没有任何QuerySnapshot
方法。您可能应该使用get()
,或者再次使用docs
。