如何为特定电子邮件域设置Firebase实时数据库安全规则并允许对多个父节点进行读写
如何设置Firebase实时数据库结构的安全规则,如下所示:如何为特定电子邮件域设置Firebase实时数据库安全规则并允许对多个父节点进行读写,firebase,firebase-realtime-database,firebase-authentication,Firebase,Firebase Realtime Database,Firebase Authentication,如何设置Firebase实时数据库结构的安全规则,如下所示: users: { ... ... ... }, books: { ... ... ... }, sales: { ... ... ... } 条件:Firebase auth设置为电子邮件/密码,只有以域[mydomain.co.in]结尾的电子邮件登录的用户才能读取或写入父节点。不使用自定义声明 添加以下安全规则仅适用于第一个父节点[用户],不适用于所有用户,这里有什么遗漏 { "rules": {
users: {
...
...
...
},
books: {
...
...
...
},
sales: {
...
...
...
}
条件:Firebase auth设置为电子邮件/密码,只有以域[mydomain.co.in]结尾的电子邮件登录的用户才能读取或写入父节点。不使用自定义声明
添加以下安全规则仅适用于第一个父节点[用户],不适用于所有用户,这里有什么遗漏
{
"rules": {
".read": false,
".write": false,
"users": {
".read": "auth.token.email.matches(/.*@mydomain.co.in$/)",
".write": "auth.token.email.matches(/.*@mydomain.co.in$/)",
".indexOn": "name"
},
"books": {
".read": "auth.token.email.matches(/.*@mydomain.co.in$/)",
".write": "auth.token.email.matches(/.*@mydomain.co.in$/)",
".indexOn": "title"
},
"sales": {
".read": "auth.token.email.matches(/.*@mydomain.co.in$/)",
".write": "auth.token.email.matches(/.*@mydomain.co.in$/)",
".indexOn": "price"
},
}
}
是否尝试在uid字段中包含以下内容? 参考文献
相同的代码适用于auth.token.email.matches(/.*@mydomain.co.in$/) 验证令牌有效负载
{
"token":{
"email": "test@mydomain.co.in"
}
}
错误错误:权限\u在/books被拒绝:客户端没有访问所需数据的权限。错误错误:权限\u在/sales被拒绝:客户端没有访问所需数据的权限。抱歉,请尝试一下,上面的代码不适用于我。或者尝试firebase规则模拟器。对于阻止对黑客的完全访问所需的“删除顶级读写规则”,相同的代码适用于auth.token.email.matches(/.*@mydomain.co.in$/)
{
"token":{
"email": "test@mydomain.co.in"
}
}