【发布时间】:2018-03-04 07:59:45
【问题描述】:
我花了最后一天尝试在 firebase 规则上做一些事情,但我似乎无法在任何地方找到解决方案。我对这个 Firebase 规则很陌生,所以请耐心等待 :)
我目前有以下规则:
{
"rules": {
"users": {
"$user_id": {
// grants write access to the owner of this user account
".write": "auth != null && $user_id === auth.uid",
".read": "auth != null && $user_id === auth.uid"
}
}
}
}
这只允许具有相同 id 的用户读取和写入他们的数据。但是,问题有点复杂。
如果有新用户注册,则数据库中没有该用户的记录。所以我需要在用户内部创建一个新节点。我怎样才能做到这一点?我不知道在哪里放置条件,以免它们相互干扰。
稍微解释一下就好了,我对这种规则很迷茫。或者,如果您推荐更好的方法来解决此问题,请告诉我!
这是我用来创建新用户的代码:
var usersRef = firebase.database().ref('users');
usersRef.push({"hlo": "asdsd"});
但它给了我PERMISSION_DENIED。
【问题讨论】:
-
“互相干扰”是什么意思?根据您当前的规则,注册新用户应该不成问题。你测试了吗?
-
它不起作用。因此,如果我试图向用户添加一个新节点,它不会让我这样做。它会说 PERMISSION_DENIED。
-
请显示您用于添加新节点的代码
-
这里是代码: var usersRef = firebase.database().ref('users'); usersRef.push({"hlo": "asdsd"});
-
尝试改用这个:
var usersRef = firebase.database().ref('users'); var uid = usersRef.push().key; usersRef.child(uid).set({"hlo": "asdsd"});
标签: firebase firebase-realtime-database firebase-security