我创建了一个小应用程序,它使用Firebase作为我的投资组合的数据库。许多网站呈现不同的视图是否已经过身份验证的用户被记录,并且我希望有一个帐户能够登录并且将被身份验证但没有写入权限。我目前的规则如下:
"rules": {
".read": true,
".write": "auth != null", }
我知道这允许任何人阅读数据(我想要的),但我想知道是否有办法去"技巧"我的反应应用程序在思考用户时,使用" Example123"的示例uid进行身份验证,但如果该用户尝试写入失败?
我尝试过类似的事情:
"rules": {
".read": true,
".write": "auth != Example123", }
但是firebase不喜欢这样。是否可以使用firebase规则做我想要的事情,还是我需要找出不同的方法?提前谢谢。
答案 0 :(得分:1)
你可以这样做:
在数据库中创建一个节点users
,在该节点下,您将使用其(他们的)用户UID存储特定用户,例如:
- users
- Lt7kif73eL58dFCYcmeEfOzUl2n1 <- User UID
- restrictedRights: true
- name: xxxxxx
并按照以下方式编写规则
".write": "auth != null && !root.child('users').hasChild(auth.uid)"
当然,您应该将此规则添加到您的数据库中:
"users": {
".read": ....,
".write": false
}