【问题标题】:Select a document within the db.collection operation在 db.collection 操作中选择一个文档
【发布时间】:2021-05-25 13:25:01
【问题描述】:

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

我在 React 中构建了一个社交网络,为此我使用了 nodeJs。 我有一个功能要尝试修复,但它不起作用。 在 firebase 中,我有一个名为 match 的集合,其中有用户的详细信息,并且对于每个用户,出现他的朋友的其他参与者。 以图片为例:

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

这是我写的函数,但是有一个问题,它通过所有用户,图中可以看到的三个用户。

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);

  });
};

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

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}) 但我做不到

【问题讨论】:

    标签: node.js reactjs firebase express


    【解决方案1】:
    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 });
        });
    };
    

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

    【讨论】:

      猜你喜欢
      • 2021-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-22
      • 2010-10-25
      • 1970-01-01
      • 2018-02-13
      • 2019-05-01
      相关资源
      最近更新 更多