我是新来这个网站的,我有一个关于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}),但我不能这样做
发布于 2021-02-23 17:54:46
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 });
});
};我找到了适合我的解决方案
https://stackoverflow.com/questions/66330332
复制相似问题