Ios Firebase安全和规则
简单介绍一下,我正在尝试了解Firebase安全协议,我已经建立了一个名为UsersDB的数据库,它将根据auth.uid存储详细信息。详细信息包括全名、电子邮件、提供商、帐户创建日期、上次登录日期 我设置了如下规则:Ios Firebase安全和规则,ios,swift,firebase,Ios,Swift,Firebase,简单介绍一下,我正在尝试了解Firebase安全协议,我已经建立了一个名为UsersDB的数据库,它将根据auth.uid存储详细信息。详细信息包括全名、电子邮件、提供商、帐户创建日期、上次登录日期 我设置了如下规则: { "rules": { ".read": "auth != null", // only authed users can read/write ".write": "auth != null", "UsersDB": { "$uid":
{
"rules": {
".read": "auth != null", // only authed users can read/write
".write": "auth != null",
"UsersDB": {
"$uid": {
".read": "auth.uid == $uid", // users can read/write their own data
".write": "auth.uid == $uid"
}
}
}
我的理解是,只有用户id与auth.uid匹配的人才能读取和写入记录
我的问题是我是否正确地做到了这一点,如果没有,我应该如何做到这一点?我只希望创建帐户的人能够读取和写入此信息,而不希望其他uid访问此信息
最后,作为firebase帐户的管理员。我会考虑创建一个管理控制台类型的软件,它允许我访问存储的所有数据。我将如何更改或更新规则以允许管理员登录访问上述数据。我是否会更改对任何人的读访问权限(尽管在我看来这似乎会在规则中留下漏洞),或者是否有方法声明一条规则,允许我(管理员)对所有数据进行完全读访问
谢谢您忽略了Firebase文档中的一个非常重要的部分,其中规定: 安全和FIREBASE规则自上而下工作 子规则只能向父节点已声明的内容授予附加权限。它们不能撤消读或写权限 由于您的顶级读写规则已经允许任何经过身份验证的用户读/写所有帐户,因此您不能在树的较低位置撤消该权限 幸运的是,在您的场景中不需要授予这些更高级别的权限
{
"rules": {
"UsersDB": {
"$uid": {
".read": "auth.uid == $uid",
".write": "auth.uid == $uid"
}
}
}
}
这样,每个用户只能读写自己的数据
记住那个火源。使用上面的结构,没有用户可以查询
/UsersDB
,因为没有人在那里有阅读权限。谢谢Frank。我理解你对权限级联的看法以及我最初的设置。我需要更多地研究它,并寻找一些例子来更好地理解。在上面的规则中,每个用户只允许读写他们自己的数据,但假设user_x是超级管理员,我希望user_x读写每个人的数据。可能吗?