首页 > 解决方案 > 查询 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的值记录到控制台时它返回正确的值但是在块之外它返回空,我想请知道我做错了什么。

标签: javascriptnode.jsfirebasegoogle-cloud-firestore

解决方案


推荐阅读