Javascript 我可以获取所有文档,但无法在Firestore中检索单个文档

Javascript 我可以获取所有文档,但无法在Firestore中检索单个文档,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,编辑: 新手错误,我试图通过ID引用一个文档,但由于人为错误,我使用的输入在末尾有空间 const id=kahgsdjhagsd//应该是kahgsdjhagsd const usersRef=fb.db.collection'users'.docid; ======== 我试图检索一个文档,但它表明它不存在,尽管我运行逻辑以获取响应中的所有文档 const users=wait db.collection'users.get; users.forEachuser=>{ console.log

编辑:

新手错误,我试图通过ID引用一个文档,但由于人为错误,我使用的输入在末尾有空间

const id=kahgsdjhagsd//应该是kahgsdjhagsd const usersRef=fb.db.collection'users'.docid; ========

我试图检索一个文档,但它表明它不存在,尽管我运行逻辑以获取响应中的所有文档

const users=wait db.collection'users.get; users.forEachuser=>{ console.loguser.id,user.data// const userRef=fb.userscolection.docuser.id

在上面的一行中,在检查文档是否存在之前,必须使用get获取DocumentSnapshot

const userSnap = await fb.usersCollection.doc(user.id).get();
if (userSnap.exists) {
    console.log("User exists")
} else {
    console.log("User does not exist")
}

另一个重要的注意事项是,在forEach中使用async/await并不可取,因为它不会始终给出预期的结果。传统的for..loop将有助于完成工作。

我在这里遵循文档:,这不起作用。唯一似乎起作用的是硬编码文档ID。即使我确认ID是在调用之前,它仍然找不到DoucMont。好像它希望它是一个实际的字符串?是的,这是一个很好的参考。在您的代码段中,当您传递从firestore检索到的id时,它应该已经工作了;我希望fb.usersCollection有一个带有给定id的文档只是想知道db.collection之间的区别“users”和fb.usersCollection。两者都引用同一数据库中的同一个集合?基本上为什么两个firestore在这里引用?酷;你试过-const usersRef=fb.db.collection“users”了吗?doc`${id}`;?哈哈;很高兴你终于得到了它!!