javascript - 查询 firestore 中的文档集合并将其保存在变量中始终返回空
问题描述
所以我一直在尝试在firestore中查询一个集合以返回满足特定条件的文档并将结果保存在一个变量中,如下所示:
exports.getFriendsScreams = (req, res) => {
const user = req.user.handle;
let friendsList = [];
let friendsPost = [];
db.collection("users")
.doc(user)
.get()
.then(snap => {
friendsList = snap.data().friends;
friendsList.forEach(friend => {
db.collection("screams")
.where("handle", "==", friend)
.orderBy("createdAt", "desc")
.get()
.then(snapshot => {
snapshot.forEach(doc => {
friendsPost.push(doc.data());
});
});
});
return res.status(201).json({ friendsPost });
})
.catch(err => {
return res.status(500).json({error: err.message});
});
};
但是res.json中返回给客户端的数据是friendsPost总是返回空但是当我在每个块的第二秒内将friendsPost的值记录到控制台时它返回正确的值但是在块之外它返回空,我想请知道我做错了什么。
解决方案
推荐阅读
- javascript - Find documents that have matching elements between arrays
- php - pChart 库和 PHP:pDraw 类虽然存在但未找到
- c# - 我如何将一些数据作为文本添加到已经有数据的文本文件中
- c++ - 将数组的容量声明为类中它自己的变量的好处?
- sass - Sass:在 & 2+级嵌套前面添加元素
- python - Python3 PyQT5 浮点变量到 LineEdit
- android - 在选定位置显示图像并在回收站视图中隐藏所有其他以前的图像
- flutter - Flutter 网页黑屏
- laravel - Laravel 5.8 与 Bootstrap 3
- python - 试图获得运行列表的总和