firebase规则,创建用户权限\u拒绝:权限拒绝

firebase规则,创建用户权限\u拒绝:权限拒绝,firebase,firebase-realtime-database,firebase-security,Firebase,Firebase Realtime Database,Firebase Security,我获得权限\u被拒绝:尝试创建用户时权限被拒绝: { "rules": { ".read": true, ".write": "auth != null", "users": { "$uid": { ".read": true, ".write": "auth.uid == $uid", ".validate": " newData.child('user').isString() &

我获得权限\u被拒绝:尝试创建用户时权限被拒绝:

{
 "rules": {

   ".read": true,
   ".write": "auth != null",

    "users": {
    "$uid": {
        ".read": true,
        ".write": "auth.uid == $uid",
        ".validate": "
            newData.child('user').isString() &&
            newData.child('user').val().length > 3
        "
    }
 }

 }
}
用户是字符串,有3个以上的字母。但我认为这和身份证有关

我使用
createUserWithEmailAndPassword
创建一个用户,并尝试将其插入数据库:

firebase.database().ref('users/' + userID).set({
    username: username,
    email: email
});
用户id是id
createUserWithEmailAndPassword
返回的


有什么问题吗?

您的问题来自
。验证部分:根据您的规则,您需要编写一个节点,如下所示

firebase.database().ref('users/' + userID).set({
    user: username,   // <-- see here we have a user sub-node
    email: email
});

问题很可能来自
.validate
部分。您如何设置数据?我的意思是你在使用云函数吗?你在代码中传递属性
username
,但在规则中验证
user
。由于
用户
用户名
规则拒绝写入。另外
“.write”:“auth!=null”,
正在处理用户写入。。。知道为什么吗?请注意,通过使用Firebase控制台中的“规则游乐场”模块,您可以轻松发现此类问题。
{
 "rules": {

   ".read": true,
   ".write": "auth != null",

    "users": {
    "$uid": {
        ".read": true,
        ".write": "auth.uid == $uid",
        ".validate": "
            newData.child('username').isString() &&
            newData.child('username').val().length > 3
        "
    }
 }

 }
}