Firebase 规则:我们发现您的安全规则存在以下问题



赞赏这看起来已经针对个人要求多次回答。 Firebase是全新的,我想对此有所了解。 我收到了来自Firebase的消息。

我们检测到安全规则存在以下问题: 任何登录用户都可以读取整个数据库 任何登录用户都可以写入整个数据库

我当前的规则如下所示:

{
"rules": {
".read": "auth != null",
".write": "auth != null",
"items": {
".indexOn": "ownerId"
},
"events": {
".indexOn": "ownerId"
},
"contacts": {
".indexOn": "ownerId"
}
}
} 

根据文档,我只需要执行此操作吗?

{
"rules": {
".read":   "auth != null && auth.uid == $uid"
".write":  "$user_id === auth.uid",
"items": {
".indexOn": "ownerId"
},
"events": {
".indexOn": "ownerId"
},
"contacts": {
".indexOn": "ownerId"
}
}
}  

在进行更改之前,用户是否仍能够访问自己(以前(写入的数据,同时强制执行 Firebase 的安全规则。

抱歉,如果这是一个愚蠢的问题,但得到了很多数据,我不能让用户无法访问。

谢谢

正如 Firebase 文档所说:

有时,规则会检查用户是否已登录,但不会根据该身份验证进一步限制访问。如果您的某个规则包含 auth != null,请确认您希望任何登录用户有权访问数据。

所以你必须在规则部分下摆脱这部分:

".read": "auth != null",
".write": "auth != null",

并使用以下任一方法:仅限内容所有者、路径描述的访问权限或混合公共和专用访问。 例如:

{
"rules": {
"products": {
"$uid": {
".read": "auth != null && auth.uid == $uid",
".write": "auth != null && auth.uid == $uid",
".indexOn": ["creatorId", "isActive"]
}
},
"stores": {
"$uid": {
".read": "auth != null && auth.uid == $uid",
".write": "auth != null && auth.uid == $uid",
".indexOn": ["creatorId", "isActive"]
}
},
"orders": {
"$uid": {
".read": "auth != null && auth.uid == $uid",
".write": "auth != null && auth.uid == $uid",
}
},
}
}

最新更新