gpt4 book ai didi

firebase - 使 .read 和 .write 安全规则适用于组

转载 作者:行者123 更新时间:2023-12-04 01:03:49 24 4
gpt4 key购买 nike

我很难编写用于构建基于团队的协作平台的安全规则。

  • 当用户注册时,他们应该能够创建一个团队并邀请用户加入该团队。
  • 项目应归团队所有。
  • 只有该团队中的用户才能查看该项目。
  • 用户应该只看到他们所属的团队。

  • 我如何编写 .read 安全规则,以便用户只能看到他们所在团队的信息?

    我应该只列出两个团队,因为我属于他们 github:8272012 .

    当前的安全规则:
    {
    "rules": {
    ".read": true,
    "users": {
    "$user": {
    //can add a message if authenticated
    ".write": "auth.uid === $user"
    }
    },
    "teams": {
    "$team": {
    "users": {
    // can write to the users list only if ADMINISTRATOR
    "$user": {
    ".write":"newData.parent().child(auth.uid).val() === 99"
    }
    }
    }
    },
    "projects": {
    "$team": {
    "$project": {
    //can add a message if they are a MEMBER
    ".write": "(!data.exists() && newData.exists() && root.child('teams/' + $team + '/users/' + auth.uid).val() >= 10)"
    }
    }
    }
    }
    }

    我应该只列出两个团队,因为我属于他们 github:8272012 .

    enter image description here

    enter image description here

    最佳答案

    以下安全规则将仅向项目团队中的用户授予项目的读写访问权限(假设您为每个用户添加一个 /projects 节点以指示该用户有权访问哪些项目):

    "rules": {
    "projects": {
    "$project": {
    ".read": "root.child('users').child(auth.uid).child('projects').val().child($project).exists()" ,
    ".write": "root.child('users').child(auth.uid).child('projects').val().child($project).exists()"
    }
    }
    }

    我看不到您为每个项目存储了哪些数据,但是如果您存储对项目团队的引用,您也可以在安全规则中使用它。

    关于firebase - 使 .read 和 .write 安全规则适用于组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32259014/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com