【发布时间】:2017-06-15 09:38:56
【问题描述】:
这里有一个非常简单的用户规则:
{
"rules": {
"users": {
".read": true,
"$userId": {
".write": "auth.uid === $userId"
}
}
}
}
当然,当我们想创建新用户时它不起作用,这是我的问题,如何创建将检查users 路径中的新键是否与auth.uid 相同的规则?
更新
我需要在".read": true 下方的".write": "auth.uid === $userId" 这样的行,但这里是不可能的,因为它看不到$userId 变量。
就我而言,这应该可行:
- 位置:
/users - 数据:
{ "user1" : { "name": tester" } } - UID:
user1
但这不应该:
- 位置:
/users - 数据:
{ "user1" : { "name": tester" } } - UID:
user2
【问题讨论】:
-
此规则确保只有当前登录的用户可以编辑自己的数据。我不太明白您对 new 键的引用。您能否举一个您希望允许的代码示例以及您希望禁止的代码示例?
-
你试过你的规则了吗?它只允许用户在他/她的
userId下创建、更新或删除数据。这似乎就是你想要的。 -
但是不允许先创建userId。
-
Firebase 数据库中的键/路径是在数据写入该路径时自动创建的。您当前的规则允许使用第一个数据写入路径并禁止第二个数据。除非您有一些实际代码失败,但应该允许这样做,否则我们无能为力。
标签: android firebase firebase-authentication firebase-security