Firestore-如何从FirebaseFirestore.QuerySnapshot获取文档ID?

时间:2019-03-22 11:07:00

标签: typescript firebase google-cloud-firestore

我正在查询特定文档的集合,并尝试从类型为FirebaseFirestore.QuerySnapshot的查询结果中获取文档ID。

我的实际查询如下(我正在使用异步/等待):

result = await db.collection("chatrooms").where("userA", "==", req.body.userA)
            .where("userB", "==", req.body.userB).limit(1).get();

我尝试过:

await result.docs.map(doc => {
            return doc.id
        })

但是那给了我undefined

我在做什么错了?

1 个答案:

答案 0 :(得分:2)

  

QuerySnapshot包含零个或多个代表查询结果的DocumentSnapshot对象。这些文档可以通过docs属性作为数组访问,也可以使用forEach方法枚举。可以通过empty和size属性确定文档数。

因此它将返回QueryDocumentSnapshot s的数组(QuerySnapshot)。您需要使用forEach()遍历快照,然后才能从每个QueryDocumentSnapshot

获取文档ID

https://firebase.google.com/docs/reference/js/firebase.firestore.QueryDocumentSnapshot

如果您使用的是打字稿,则应该能够在IDE中查看定义,方法和属性。