Firebase规则:我们';我已检测到您的安全规则存在以下问题
感谢您的支持。看起来,针对不同的需求,您已经多次回答了此问题。对Firebase来说是全新的,我想了解一下这一点。我收到了来自Firebase的消息 我们检测到您的安全规则存在以下问题: 任何登录的用户都可以读取整个数据库 任何登录的用户都可以写入整个数据库 我当前的规则如下所示:Firebase规则:我们';我已检测到您的安全规则存在以下问题,firebase,firebase-realtime-database,firebase-security,Firebase,Firebase Realtime Database,Firebase Security,感谢您的支持。看起来,针对不同的需求,您已经多次回答了此问题。对Firebase来说是全新的,我想了解一下这一点。我收到了来自Firebase的消息 我们检测到您的安全规则存在以下问题: 任何登录的用户都可以读取整个数据库 任何登录的用户都可以写入整个数据库 我当前的规则如下所示: { "rules": { ".read": "auth != null", ".write": "auth
{
"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的安全规则时,用户在进行更改之前是否仍然能够访问自己(以前)的书面数据
抱歉,如果这是一个愚蠢的问题,但得到了很多数据,我不能让用户无法访问
谢谢你所说的:
有时,规则会检查用户是否登录,但不会基于该身份验证进一步限制访问。如果您的规则之一包括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",
}
},
}
}
正如上面所说:
有时,规则会检查用户是否登录,但不会基于该身份验证进一步限制访问。如果您的规则之一包括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",
}
},
}
}
您必须确定数据库用户的哪些部分应该能够读写,然后编写规则来表达这些特定的需求。我不希望这些聊天一定是由用户拥有的,我会说不,因为$uid没有任何作用。请参阅示例代码中的和“用户”选项卡。请参见
$uid
如何引用/users节点中的子键-因此,如果uid为uid\u 0的用户尝试读取节点/users/uid\u 0,这将是允许的,因为uid\u 0=uid\u 0,但如果uid\u 0尝试读取/users/uid\u 1,则会因为uid\u 0而被拒绝≠ uid_1.您必须确定数据库用户的哪些部分应该能够读写,然后编写规则来表达这些特定的要求。我不希望这些聊天必须由用户拥有,我会说不,因为$uid没有做任何事情。请参阅示例代码中的和“用户”选项卡。请参见$uid
如何引用/users节点中的子键-因此,如果uid为uid\u 0的用户尝试读取节点/users/uid\u 0,这将是允许的,因为uid\u 0=uid\u 0,但如果uid\u 0尝试读取/users/uid\u 1,则会因为uid\u 0而被拒绝≠ uid_1。