我正在编写一个RSVP应用程序,用户可以进入该站点并输入其姓名。我想,如果他们的姓名与数据库中的记录匹配,则可以授予他们编辑其参加字段的权限。在这种情况下,我对安全性了解不多。
我在firebase文档中找不到所需的内容。我通常会看到通过用户名和密码进行的身份验证可以完全读写,而我并不想这样做。
{
"rules": {
".read": (if user name matches a record),
".write": (if user name matches a record, only can edit)
}
}
我不确定在授予用户“写”访问权限时如何对用户进行身份验证,以将其限制为只能编辑数据。我不希望任何恶意用户删除我的数据库。
答案 0 :(得分:1)
只需匹配路径中的用户名,并设置写入字段以匹配名称:
match /users/{username}{
allow read: if request.auth.username != null
allow write: if request.auth.username == username
}
您将应用程序设置为无需登录即可工作,并将输入的用户名用作身份验证对象auth = { username: "" }
的用户名字段值。 Firebase会将通过路径/users/{username}
提供的用户名与请求的用户名进行匹配,并相应地允许读/写访问。