2017-03-05 36 views
0

我的应用程序允许任何人写一封新消息(消息不能更新或删除),该消息应该只对经过验证的用户可见。经过身份验证的用户可以编辑数据(其中包括标记等重要事项等)。将应用视为私人建议框(任何人都可以提交建议,但只有管理员可以查看提交的建议)。我使用的火力地堡模拟器和下面的失败,但它不应该:设置规则,允许未经身份验证的用户只在Firebase数据库中写入新数据

火力地堡模拟器

  • 地点:消息/
  • 验证:假
  • 数据(JSON)

    “{key:”value“ }

火力地堡的数据库规则

{ 
    "rules": { 
    "messages": { 
     "$message": { 
     ".read": "auth !== null", 
     ".write": "!data.exists() || auth !== null", 
     }, 
    }, 
    "users": { 
     ".read": "auth !== null", 
     ".write": "auth !== null" 
    } 
    } 
} 

simulator screenshot

+0

您分享的规则乍看起来很正确:对于任何非管理用户,应该拒绝写入'/ messages'。你可以发布模拟器屏幕截图包含相同的信息? –

+0

@FrankvanPuffelen我添加了一个截图,所以这个问题可能会有益于未来的人。下面的答案解决了我的问题。谢谢! – blahblahblah

回答

2

我想那是因为你正在使用的邮件测试/,而只写消息/ {消息ID}会允许。尝试写信给/随意。

+0

谢谢!我认为我有正确的规则,但没有意识到我没有正确使用模拟器。 – blahblahblah

相关问题