首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在db.collection操作中选择一个文档

在db.collection操作中选择一个文档
EN

Stack Overflow用户
提问于 2021-02-23 17:22:35
回答 1查看 16关注 0票数 0

我是新来这个网站的,我有一个关于nodejs中的函数的问题,我无法解决。解决方案很简单,但对我不起作用。

我在React中构建了一个社交网络,为此我使用了nodeJs。我有一个试图修复的函数,但它不起作用。在firebase中,我有一个名为match的集合,在其中我有用户的详细信息,对于每个用户,显示的是他的朋友的其他参与者。例如,根据图片:

我有一个Match集合,其中有我的用户,例如backend4是用户名,在其中,我有适用于它的所有用户的详细信息。

这是我写下的函数,但它有一个问题,它要遍历所有用户,图片中可以看到的三个用户。

代码语言:javascript
运行
复制
exports.getMatchHandleArray = (req, res) => {
  let engineers = [];

  db.collection("match").get().then(querySnapshot => {
    querySnapshot.forEach(doc => {
      const engineerDetails = doc.data();
      if (engineerDetails.handle === req.user.handle) {
        engineerDetails.handle;
        engineers.unshift(engineerDetails);
      }
      else {
        engineerDetails.handle;
        engineers.push(engineerDetails);
      }
    });

    console.log(engineers.length);
    res.json(engineers);

  });
};

我希望它只通过一个我选择的用户,为此我做了这样的事情:

代码语言:javascript
运行
复制
exports.getMatchHandleArray = (req, res) => {
  let engineers = [];

  db.collection(`/match/${req.user.handle}`).get().then(querySnapshot => {
    querySnapshot.forEach(doc => {
      const engineerDetails = doc.data();
      if (engineerDetails.handle === req.user.handle) {
        engineerDetails.handle;
        engineers.unshift(engineerDetails);
      }
      else {
        engineerDetails.handle;
        engineers.push(engineerDetails);
      }
    });

    console.log(engineers.length);
    res.json(engineers);

  });
};

我收到一条500错误消息,我理解其中的原因,因为我不能在db.collection中进行选择。我认为应该使用这样的东西: db.doc (/ match / $ {req.user.handle}),但我不能这样做

EN

回答 1

Stack Overflow用户

发布于 2021-02-23 17:54:46

代码语言:javascript
运行
复制
exports.getMatchHandleArray = (req, res) => {

  let userData = {};
  db.doc(`/match/${req.user.handle}`)
    .get()
    .then((doc) => {
      if (doc.exists) {
        userData.match = doc.data();
      }
      return res.json(userData.match);
    })
    .catch((err) => {
      console.error(err);
      return res.status(500).json({ error: err.code });
    });
};

我找到了适合我的解决方案

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66330332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档