如何配置Firebase规则阻止匿名用户访问指定数据节点
Firebase规则:阻止匿名认证用户访问指定节点
匿名用户的auth.uid确实不为空,但Firebase的认证令牌里提供了专门的字段来识别这类用户——auth.token.isAnonymous,你可以通过这个字段在规则里排除匿名用户。
修改后的规则如下:
"users": { // 仅允许非匿名的认证用户读写该节点 ".read": "auth.uid != null && !auth.token.isAnonymous", ".write": "auth.uid != null && !auth.token.isAnonymous" }
规则逻辑说明
auth.uid != null:确保用户已完成认证(不管是匿名还是非匿名)!auth.token.isAnonymous:排除掉匿名认证的用户
这样设置后,只有通过邮箱/密码、Google、Facebook等非匿名方式认证的用户,才能访问users节点的内容,完全阻止匿名用户的读写操作。
节点示例无需修改,因为users下存储的本来就是非匿名用户的UID:
"users" // 所有用户均为非匿名用户 -uid123 -uid456 -uid789
内容的提问来源于stack exchange,提问作者Lance Samaria
相关产品推荐
相关产品推荐

