Javascript 如何从集合中获取单个数据

Javascript 如何从集合中获取单个数据,javascript,google-cloud-firestore,Javascript,Google Cloud Firestore,我正在使用vue3和firestore 参考firestore官方文档,有一种通过收集获取文档的方法。但这是获取所有收集数据的方法 const citiesRef = db.collection('cities'); const snapshot = await citiesRef.get(); snapshot.forEach(doc => { console.log(doc.id, '=>', doc.data()); }); 我想通过收集得到一份文件 如何获取单个文档是

我正在使用vue3和firestore

参考firestore官方文档,有一种通过收集获取文档的方法。但这是获取所有收集数据的方法

const citiesRef = db.collection('cities');
const snapshot = await citiesRef.get();
snapshot.forEach(doc => {
  console.log(doc.id, '=>', doc.data());
});
我想通过收集得到一份文件

如何获取单个文档是

const cityRef = db.collection('cities').doc('SF');
const doc = await cityRef.get();
这是一个集合,后跟一个doc()

我无法在文档中插入值,因为documemt是自动生成的ID。
因此,我不知道该怎么办。

您没有提到您特别想要的文档。如果您不知道Firestore文档的ID,可以尝试使用
。where()
这样运行:

const db = firebase.firestore()
db.collection("cities").where("cityName", "==", 'London').get().then(querySnapshot => {
  const matchedDoc = querySnapshot.doc[0]
})
上面的示例找到的文档中,
cityName
字段等于
London
(两者都区分大小写)。包含与where()方法中指定的条件匹配的所有文档。但如果您知道只有一个匹配的文档,就像我的情况一样,我只有一个cityName为London的文档,您可以通过以下方式直接访问文档数据:
querySnashots.docs[0].data()
querySnapshot.docs
是一个数组
[0]
是其中的第一个文档,
.data()
解析文档中的数据。此外,您还可以使用
querySnapshot.size
获取查询返回的文档数