我有一个这样的数据库:
"users": {
"gh483cwonaz8o3mff3": {
"nick": "mutlu",
"birthyear": "1996"
}
}
"nicks" : {
"mutlu": {
"uid": "gh483cwonaz8o3mff3"
}
}
第一个写入数据库的数据是"用户"。而不是" nicks"。但是" mutlu" in" nicks"应与"用户> gh483cwonaz8o3mff3> nick"相同值。 如何确定数据的安全规则将写入" nicks"。 我试过这个,但没有奏效:
"nicks": {
".write": "auth.token.email_verified == true && newData.hasChild(root.child('users').child(auth.uid).child('username').val())"
}
答案 0 :(得分:1)
您在规则中构建的路径与您共享的JSON中的结构不匹配。 我认为写昵称的安全规则应该是:
{
"rules": {
"nicks": {
"$nick": {
".write": "auth.token.email_verified == true &&
root.child('users').child(auth.uid).child('nick').val()) == $nick"
通过将JSON /路径保持在规则旁边来捕捉此类错误最容易:"users": { "gh483cwonaz8o3mff3": { "nick": "mutlu",