如何在Firebase中设置规则以防止使用相同的昵称?

时间:2018-08-20 19:44:39

标签: firebase firebase-realtime-database firebase-security-rules

"RegisterRequests": {
  "$uid": {
    ".write": "$uid === auth.uid && !root.child('Users').child(auth.uid).exists()",
    ".validate": "newData.hasChildren(['Nickname']) && newData.hasChildren(['Whatever'])",
    "Nickname": {
      ".validate": "newData.val().length > 1 && newData.val().length < 17 && !root.child('Users').child('Nickname').child(newData.val()).exists() && !root.child('RegisterRequests').child('Nickname').child(newData.val()).exists()"
    },
    "Whatever": {
    ".validate": "newData.val() > 0 && newData.val() < 6"
    },
    "$other": { ".validate": false }
  }
}

"Users": {
  "$uid": {
    ".read": "$uid === auth.uid",
    "Nickname": {

    }
  }
}

这些是我的数据库规则。我试图防止添加包含UsersRegisterRequests中已经存在的昵称的数据。我想我在这里失败:!root.child('Users').child('Nickname').child(newData.val()).exists() && !root.child('RegisterRequests').child('Nickname').child(newData.val()).exists()  因为Nickname的价值不在于孩子。但是我不知道如何进行检查。另外我也不知道这是否是检查孩子的正确方法,因为我在此层次结构中缺少Identifier孩子。谁能帮我吗?

0 个答案:

没有答案