【发布时间】:2020-04-29 06:40:25
【问题描述】:
我正在 Firebase 上编写一个微博网站,我对这个网站很陌生。我正在存储用户信息(例如介绍、个人资料图片)并发布用户写的如下结构:
{
"posts" : {
"postid" : {
"category": "xx",
"content": "xx",
"uid":"xx"
}
},
"users" : {
"uid" : {
"intro" : "xx",
"nickname" : "xx",
"profile_picture" : "xx"
}
}
}
我想制定以下规则:
任何已登录的用户都可以发帖,但之后只能编辑自己的帖子
对于用户信息,他们只能发布/编辑自己的信息。
我设置了如下的数据库安全规则。
"users": {
".read": true,
"$uid": {
".write": "auth.uid===$uid"
},
},
"posts": {
".read": true,
".write": "auth!==null",
},
这里有几个问题:
一个。此规则将允许任何不良用户编辑不属于他/她自己的任何其他帖子。
b.尝试写入用户节点时,目前没有现有的 UID 子节点,并且用户被拒绝写入权限。
如何更改数据库规则来解决这两个问题?我的偏好是在不重写前端代码或更改数据库结构的情况下这样做......很想在这里寻求一些建议!
【问题讨论】:
-
您已在问题中包含指向 JSON 树和安全规则图片的链接。请用实际的 JSON 和规则作为文本替换它。对于 JSON,您可以通过单击 your Firebase Database console 的溢出菜单 (⠇) 中的 Export JSON 链接轻松获取此信息。将 JSON 和规则作为文本使其可搜索,使我们能够轻松地使用它们来测试您的实际数据和规则,并在我们的答案中使用它们,一般来说这是一件好事。
-
嗨@FrankvanPuffelen,感谢您对网络开发新手的建议。我按照您的建议更改了内容。你能看看吗?谢谢!
标签: firebase firebase-realtime-database firebase-security