权限被拒绝firebase.push()

时间:2016-04-15 18:57:40

标签: java firebase firebase-security

我正在使用firebase和java。我以前用

添加数据
firebaseRef.child("users").push().setValue(user);

我的user是来自User.class的对象,具有以下属性

String name;
String id;

当我向数据添加验证以接受id等于密钥id === 'secret id'的输入时,如下所示

"user": {
    ".read": true,
    ".write": true,
    ".validate": "newData.hasChild('id')",
    "id": {
        ".validate": "newData.val() === 'secret id'"
    }
}

它显示我的许可被拒绝,我根据他们的文件尝试了很多案件,但我得到了同样的许可被拒绝 有什么建议吗?

1 个答案:

答案 0 :(得分:1)

问题解决后,Firebase.push()会生成新的ID,因此newData不再引用它,我创建了一个变量来表示该ID,以便我可以正常访问我的数据

"user": {
    "$key": {
        ".read": true,
        ".write": true,
        ".validate": "newData.hasChild('id')",
        "id": {
            ".validate": "newData.val() === 'secret id'"
        }
    }
}