为什么我无法写入Firebase数据库?

时间:2018-07-02 09:52:06

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

我正在使用Firebase,尝试写入数据库时​​出现权限拒绝错误。 这就是我的规则:

{
  "rules": {
    "foo": {
      ".read": true,
      ".write": true
    }
  }
}

这是要写入数据库的代码:

function writeUserData(userId, name, email, imageUrl) {
  firebase.database().ref('users/' + userId).set({
    username: name,
    email: email,
    profile_picture : imageUrl
  });
} 

为什么我不能写我的数据库?

1 个答案:

答案 0 :(得分:2)

在当前规则中,您允许写入数据库的“ foo”节点,但是您尝试写入“ users”。由于您尚未为“用户”设置规则,因此Firebase会使用默认规则false进行后退。

如果您希望能够写给用户,则必须将规则更改为此:

elapsed time

请记住,这允许所有人(甚至未经身份验证的用户)读取/写入该位置。为了获得更安全的选择,您可以限制它,以便用户只能读/写他们自己的数据:

{
  "rules": {
    "users": {
      ".read": true,
      ".write": true
    }
  }
}

the firebase docs中的示例。