Javascript 正在迭代集合并尝试获取文档内的引用字段。get()不起作用

Javascript 正在迭代集合并尝试获取文档内的引用字段。get()不起作用,javascript,firebase,google-cloud-firestore,redux-firestore,Javascript,Firebase,Google Cloud Firestore,Redux Firestore,我试图获取一个集合,然后对其文档进行迭代。每个文档中都有另一个集合文档的引用字段。通常,如果我查询它,那么没有问题,但迭代会产生问题 在迭代组织成员时,遵循我想要获取的字段 不过,如果我硬查询,那么它可以正常工作 const snap = await firestore .doc("organization-members/BOcSNLR4bt8i0Ay4aAr7") .get(); const orgSnap = await snap.da

我试图获取一个集合,然后对其文档进行迭代。每个文档中都有另一个集合文档的引用字段。通常,如果我查询它,那么没有问题,但迭代会产生问题

在迭代组织成员时,遵循我想要获取的字段

不过,如果我硬查询,那么它可以正常工作

const snap = await firestore
      .doc("organization-members/BOcSNLR4bt8i0Ay4aAr7")
      .get();
    const orgSnap = await snap.data().organization.get();
    console.log(orgSnap.data());
这些对象也是不同的

上面的日志来自我硬查询它时的日志,下面的日志来自我循环遍历集合文档时的日志


我做错了什么

对于其他有类似问题的人,这个答案可能会帮助你

首先,我的代码中有一个错误,但这给了我另一个答案

错误在于我忘了在forEach函数中添加async

应该是这样的

 const result = await firestore.collection("organization-members").get();
  result.docs.forEach(async (doc) => {  // or result.forEach
    const data = doc.data();
    const organization = data.organization;
 
    const orgData = await organization.get() // But this says that organization.get() is not a function
  });
但这不是正确的方法

显然,async/await在forEach循环中无法正常工作我不知道这背后的原因我确实联系了firebase团队,那里的代表也说了同样的话,所以最好的方法应该是使用for循环

e、 g

这总是很好的

 const result = await firestore.collection("organization-members").get();
  result.docs.forEach(async (doc) => {  // or result.forEach
    const data = doc.data();
    const organization = data.organization;
 
    const orgData = await organization.get() // But this says that organization.get() is not a function
  });
for(doc of result.docs)