Typescript 我如何才能让这个查询工作?(消防商店)

Typescript 我如何才能让这个查询工作?(消防商店),typescript,firebase,google-cloud-firestore,Typescript,Firebase,Google Cloud Firestore,我试图在onUpdate函数中获取查询结果的文档ID。这就是我所拥有的: console.log(change.after.id) const queryRef = await db.collection('groups').where('groupDetails', '==', [change.after.id]).get() console.log(queryRef.id) 在我的日志中,我没有定义: 但当我查看firebase并过滤查询时,它与我拥有的相同: 这可能很简单,但我找不到

我试图在onUpdate函数中获取查询结果的文档ID。这就是我所拥有的:

console.log(change.after.id)
const queryRef = await db.collection('groups').where('groupDetails', '==', [change.after.id]).get()
console.log(queryRef.id)
在我的日志中,我没有定义:

但当我查看firebase并过滤查询时,它与我拥有的相同:


这可能很简单,但我找不到答案,这让我发疯!谢谢你的帮助

使用对集合运行查询时,将返回一个包含零个或多个与查询匹配的文档的集合。重要的是要认识到,即使您只需要一个文档,Firestore也不知道这一点,并要求您检查QuerySnapshot中结果集的大小。现在,您的代码只是假设有一个文档,这是行不通的

使用QuerySnapshot的API,您的代码应该更像这样:

const querySnapshot = await db
    .collection('groups')
    .where('groupDetails', '==', [change.after.id])
    .get()
if (querySnapshot.docs.length > 0) {
    console.log(querySnapshot.docs[0].id)
}
else {
    console.log("No documents")
}
如果有与查询匹配的结果,这将打印结果集中第一个文档的ID