当前位置: 首页 > 知识库问答 >
问题:

Firebase规则:只允许用户编辑自己的配置文件,但可以创建新用户

充修能
2023-03-14

我花了最后一天的时间试图做一些关于消防规则的事情,但我似乎找不到任何地方的解决方案。我对这个火炉规则很陌生,所以请耐心:)

我目前有以下规则:

{
  "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"
      }
    }
  }
}
var usersRef = firebase.database().ref('users'); 
usersRef.push({"hlo": "asdsd"}); 

共有1个答案

邹华皓
2023-03-14

你的规矩很好。问题是您用来编写新用户的代码。您正在创建一个随机密钥,它将与当前用户的UID不匹配。您应该从Firebase Auth获得用户uid:

var usersRef = firebase.database().ref('users');
var uid = firebase.auth().currentUser.uid;
usersRef.child(uid).set({"hlo": "asdsd"});
 类似资料:
  • 我正在与firebase安全规则作斗争,我可以让它的一部分工作,但当我试图将它连接在一起时,我有问题。 我希望我的规则做到以下几点: > 如果经过身份验证,允许读取所有文档 这里是什么我有,不包括用户能够创建他们自己的用户帐户。它只允许管理员写任何文档。 下面是我试图添加的内容,以允许用户创建他们的用户文档。它似乎没有级联到下一个规则,它尝试路径中的getRole,发现用户不是管理员,所以失败了。

  • 使用firestore和angularfire2 RC2。 我想要达到的目的是只允许用户访问他们自己的数据。 我从以下规则开始: 然而,只要我添加任何类型的限制性规则,包括甚至只是验证请求,就被授权了。

  • 问题内容: 我希望有 多个 MySQL用户能够发出类似的命令 但是我也希望这些用户中的每一个都只能看到和访问他们 自己的 数据库。 我所能找到的就是如何由DBA创建数据库并将该数据库的特权授予特定用户: 或将所有数据库的特权授予用户: 但是我也不想要,因为它需要扩展和安全。 问题答案: 您可以使用 授予用户名称以开头的所有数据库的用户特权。 这允许测试用户创建限制于以testuser_开头的名称的

  • 问题内容: { “rules”: { “users”: { “$uid”:{ //Private whatever under “uid” but Public is exposed “.read”: “auth != null && auth.uid == $uid”, “.write”: “auth != null && auth.uid == $uid”, 我创建这些规则是为了让用户拥有公共

  • 我读过消防安全规则文件。我已经通过Firebase(Firebase Auth)实现了身份验证,但我无法理解如何根据每个用户的配置文件在Firebase中正确配置安全规则。 考虑以下数据结构 用户只能在其所属的公司中读取或写入信息(users/$iduser/companis/$idcompany==true) 规则2 只有公司X的管理用户可以让另一个用户访问他的公司,对于该公司,idcompan

  • 我需要你对LDAP结构和相关ACL的建议。 我们的LDAP将管理10个(数量可能不同)组织,其中包含用户(总共250个用户),我希望每个组织允许1个用户管理他自己组织的所有用户。用户也将附加到自定义组。 我已经读过: http://www.openldap.org/doc/admin24/access-control.html http://www.openldap.org/faq/data/ca