Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 特定快照的Firestore查询子集合_Javascript_Firebase_Google Cloud Firestore_Google Cloud Functions - Fatal编程技术网

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()
编写该代码。