Jer*_*rry 8 firebase firebase-realtime-database firebase-security-rules
如何使用"允许更新但不允许添加新记录"来设置数据库规则?
我尝试在下面模拟,但不起作用..
我的数据:
{
users:{
-randomID001:{
email:user@email.com,
status:active
},
-randomID002:{
email:user2@email.com,
status:inactive
}
}
}
Run Code Online (Sandbox Code Playgroud)
在控制台中模拟:
{
"rules": {
".read": "auth != null",
"users":{
".indexOn": "email",
".write":"!newData.exists() && data.exists()"
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果新记录不存在且现有记录存在,这行代码显示允许写入的意思?
".write":"!newData.exists() && data.exists()"
Run Code Online (Sandbox Code Playgroud)
以下是我提交的测试数据:
{
"randomID001":{"status":"inactive"}
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Simulated update denied
Run Code Online (Sandbox Code Playgroud)
请指教.
您可以使用验证来检查数据库中是否已存在电子邮件,这将仅允许更新现有用户.
"users":{
"$userId":{
".write":"auth!=null",
".validate":"newData.child('email').val()===data.child('email').val()"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
747 次 |
| 最近记录: |