Firebase实时数据库与多个用户共享数据

时间:2018-09-11 16:32:11

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

对于Web应用程序,我有一个用户思维导图的列表。

每个用户都应该能够 1.只读/写自己的思维导图 2.与其他用户共享他们拥有的思维导图(只读)

当前,用户正在存储自己的思维导图(id)的引用,以便他们以后可以从/ mindmaps中检索到它。这种方法的问题在于,思维导图无法与其他用户共享。这就是我的规则和数据库现在的样子。

规则

{
    "rules": {
        "users": {
                "$uid": {
                    ".write": "$uid === auth.uid",
                    ".read" : $uid === auth.uid"
                }
        },

        // user can only read mind maps of their own.
        "mindmaps": {
            "$mindmap": {
                ".write": "data.child('ownerUid').val() === auth.uid",
                ".read" : "data.child('ownerUid').val() === auth.uid || data.child('sharedTo').val() === auth.uid"
            }
        }
    }
}

数据库

mindmaps: {
    mindmap1: {
        owner: "cjh",
        sharedTo: "someOtherUser"
    }
}

users: {
    cjh: {
        mindmaps: {
            0: "mindmap1"
        }
    },
    someOtherUser: { … }
}

我还能如何构造数据和规则?

0 个答案:

没有答案