基于用户的Firebase权限';角色

基于用户的Firebase权限';角色,firebase,firebase-security,Firebase,Firebase Security,在我的申请中,我应该有三种角色: 存储:可以做任何类型的读取和写入他们拥有的密钥下的任何内容 客户:只能在指定店铺下方创建他们的聊天键;创建聊天室后,他们只能通过自己的聊天室推送至消息子项 服务员:只能更新指定给他们的聊天,并在他们的消息标签下插入 数据库类似于: "$store_id": { "owner": STORE_ID, "chats": { ... "$chat_id": { "owner": COSTUME

在我的申请中,我应该有三种角色:

  • 存储:可以做任何类型的读取写入他们拥有的密钥下的任何内容

  • 客户:只能在指定店铺下方创建他们的聊天键;创建聊天室后,他们只能通过自己的聊天室推送至消息子项

  • 服务员:只能更新指定给他们的聊天,并在他们的消息标签下插入

数据库类似于:

"$store_id": {
    "owner": STORE_ID,
    "chats": {
        ...
        "$chat_id": {
            "owner": COSTUMER,
            "attendant": ATTENDANT,
            "messages": {
                "$message_id": {
                    "owner": CUSTOMER_ID
                }
            }
        }
        ...
    }
} 
我不知道如何实现这种行为,因为:

  • 如果将权限应用于顶级节点,则其子节点不能覆盖该权限
  • 如果有人用有效的凭证(即:customers')闯入数据库,他们可以扮演他们想要的任何角色
    在Firebase中如何处理此类问题?

    您看到这个答案了吗?对我解决了角色的问题。但是我仍然停留在层次结构上。你可以尝试将你的
    /chats\u id/messages
    结构分解到根目录,这样你就不必担心嵌套了。你看到这个答案了吗?对我解决了角色的问题。但是我仍然停留在层次结构上。你可以尝试将你的
    /chats\u id/messages
    结构分解到根目录,这样你就不用担心嵌套了