防止未登录的用户阅读评论

时间:2018-01-26 20:45:25

标签: firebase firebase-realtime-database firebase-security-rules

我有这个结构

posts : {
    "id" : {
        title : "title" ,
        content : "content" ,
        image : "url" ,
        comments : {
            "commentId" : {
                "name" : "name" ,
                "comment" : "comment" ,
                "time" : 26342624362436
            }
        }
    }
}

我想阻止未登录的用户看到帖子的评论,但他们可以看到其他信息(标题,内容,图片)

这是我的规则:

{
    "rules" : {
        "posts" : {
            "$id" : {
                ".read" : "auth != null"
            }
        }   
    }
}

但这只允许登录用户阅读,未登录的用户无法阅读帖子信息(标题,内容,图片)。

任何人都可以帮我解决问题吗?

1 个答案:

答案 0 :(得分:2)

解决您的问题我需要稍微改变您的结构

posts : {
    "$id" : {
        "metaData" : {
            title : "title" ,
            content : "content" ,
            image : "url" ,
        }
        "comments" : {
            "$commentId" : {
                "name" : "name" ,
                "comment" : "comment" ,
                "time" : 26342624362436
            }
        }
    }
}

然后你可以使用这些规则

{
    "rules" : {
        "posts" : {
            "$id" : {
                "metaData" : {
                    ".read" : "true"
                },
                "comments" : {
                    ".read" : "auth != null"
                }
            }
        }   
    }
}