如何从登录用户列表中过滤项目

时间:2020-03-15 14:41:14

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

我的firebase实时数据库如下:

{
    "items" : {
        "push-id-1": {
            "itemName": "some name",
            "userId": "authorization-id-1",
            "list": {}
        },
        "push-id-2": {
            "itemName": "awesome name",
            "userId": "authorization-id-2",
            "list": {
                "push-id-list-1": {
                    "some": "data"
                }
            }
        }
    }
}

我对访问规则设置有疑问。我想:

GET /items/-仅返回分配给特定用户的项目。 (使用authorization-id-2的用户只能看到push-id-2项。)

POST /items/-只有登录用户才能创建新项目。

POST /items/push-id-2/-知道项目ID的任何人都可以在list上创建新项目(未登录)

我的配置如下:


{
    "rules": {
        "items": {
            "$itemId": {
                ".write": "auth !== null",
                ".read": "auth.uid === root.child('items').child($itemId).child('userId').val()",
                "list": {
                    "$pushId": {
                        ".write": "!data.exists()"
                    }
                },
                "userId": {
                    ".validate": "auth.uid === newData.child('userId').val()"
                }
            }
        }
    }
}

0 个答案:

没有答案