2016-08-21 55 views
0

我已阅读谷歌火力地堡数据库安全规则的文档,我在我的规则文件实现了这个以下规则:为什么我可以使用这些Firebase数据库规则写入`/ users`?

{ 
    "rules": { 
    "users": { 
     "$user": { 
     ".read": "auth.uid === $user", 
     ".write": "auth.uid === $user" 
     } 
    } 
    } 
} 

的问题是,我看到了,我都可以读取和写的一切模拟器测试它用户,就像没有规则。
这是一个Firebase数据库问题吗?我该如何解决它?

这里是我的测试: Firebase database test

这里是文档的链接:https://firebase.google.com/docs/reference/security/database/#variables

+0

您在模拟器中使用了哪种认证?这些都是你的安全规则吗? –

+0

有了这些规则,您就不应该能够写入'/ users'。你能分享更多的信息(如安德烈所要求的)和模拟器的屏幕截图显示成功(模拟)写? –

+0

我编辑了这个问题,并添加了我的test @AndréKool的屏幕 – ale00

回答

2

在你的屏幕截图的规则是从您之前张贴的不同。

在Firebase数据库安全模型中,权限级联关闭:一旦您授予用户对某个节点的读或写权限,则无法在较低级别上获取该权限。请参阅documentation on security rules for more information

如果删除顶级".write": "auth !== null",你会发现,你再也不能写/users,如果你是用户uid123只能写/users/uid123

相关问题