繁体   English   中英

如何从基于带有 firestore 的字段的集合中获取文档?

[英]How to get document from a collection based on a field with firestore?

我正在使用 Firestore 和 React,我有以下情况。
我有 2 个集合:订单用户
每个订单都有一个名为userId的字段,基于该字段,我必须检索users 集合中的用户信息。
正如我所见,我有 2 个承诺:一个是获取订单,然后使用 for 循环,获取 userId 并再次获取用户信息。
所以我必须结合 2 个对象。
在订单对象中,我还需要用户详细信息

我试过这个,但它不起作用。

  useEffect(() => {
    firestore()
      .collection(`orders`)
      .get()
      .then(result => {
        let data = result.docs.map(function(p) {
          return firestore()
            .collection(`users`)
            .doc(p.data().orderId)
            .get()
            .then(function(user) {
    
             
              return {id: user.id,  user.data()};
            });
        });
        Promise.all(data).then(function(values) {
          
          console.log(values);
        
         
        });
      });
  }, []);

我们没有关于它为什么不工作的任何信息......是否有任何错误或它只是没有显示任何内容。

无论如何,我在我的测试 Firestore 中创建了相同的结构,并直接在 nodejs 中使用了您的代码(所有在 useEffect 中),但只发现了一个错误。 最后返回的是SyntaxError: Unexpected token . .

我已将其更正为:

return {id: user.id,  data: user.data()};

现在代码在控制台日志中返回值。 这可能是原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM