如何检查Firebase中是否存在文档的某个字段?

时间:2019-11-27 13:10:55

标签: node.js firebase express google-cloud-firestore

此函数用于更新数据库中的多个集合。下面的代码是该函数,但返回错误500。

数据库结构 帖子(收藏)-> id(文档)->喜欢(收藏)和LikesCount(字段)

我需要检查是否存在喜欢集合,以便可以为喜欢集合创建文档(如果不存在),并且likesCount字段应更新为1。

我想知道是否也可以同时为用户集合和publicPosts集合更新不同的集合。还需要像下面的功能一样检查这些字段。

exports.updateLike = function (req, res) {

    const postId = req.params.postId;   
    const userId = req.params.userId;

    let postRef = db.collection("post").doc(postId)

    postRef.collection("likes").doc(userId).get().then( doc => {
        if (doc.exists) {
            throw new Error("User already like the posts!")
        } else {
            postRef.collection("likes").doc(userId).set({
                uid: userId,
                createAt: admin.firestore.Timestamp.now()
            })
            //postRef.get().then( doc => {
            //})
            console.log("--- Operation Success ---")
            return res.status(200).json({ "message" : "success" });
        }

    }).catch(err => { 
        console.log("--- Operation Failure ---")
        return res.status(500).json(err);
    });
}; 

1 个答案:

答案 0 :(得分:1)

我发现了导致状态500出现的错误。

我从

if(doc.exists)

if(!doc.exists)