为firebase-database

时间:2017-08-28 20:23:20

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

我正在使用firebase数据库和firebase身份验证启动新应用。我对设置数据库及其规则并不熟悉。

简而言之,情况如下:app / db有一些用户和组件。 (auth)用户可以访问多个其他用户,并且用户可以包含多个组件。用户可以通过有权访问的用户访问组件。

Firebase情况

我有一个包含所有用户的user表。这些是Firebase.Auth用户,下面的所有ID都是auth.uid s。

我有一个access表,其中定义了用户可以访问其他用户的内容。通常,有一个中心'用户和其他几个用户可以访问此用户。

users
    id1 {user info}
    id2 {user info}
    id3 {user info}
    id4 {user info}
    id5 {user info}
access
    id1
        id1 true
        id2 true
        id3 true
    id4
        id2 true
        id4 true
        id5 true

以上意味着用户id1id2id3可以访问id1id4的相同内容:id2id4id5可以访问此用户。

我还有一张groupscomponents的表格。 component是我最终想要读/写的元素。 group只是一组按用户分组的组件(集线器,具体而言,在上例中为id1)。

groups
    id1
        cm1 true
        cm2 true
    id4
        cm3 true
components
    cm1
        //contains some values to read/write
    cm2
        //contains some values to read/write
    cm3
        //contains some values to read/write

在上面的代码段中,有两个groupsid1id4,对应于用户,两者都有一些组件。组件的细节位于components表中。

问题

我想制作一个firebase规则,允许user(即auth.uid)在component内读取和写入当且仅当以下情况是的:

当前user可以访问user(在access表中),其component表中包含group

如何使用上面的数据库方案进行设置。或者我应该更改数据库方案以实现这一目标吗?

编辑:我使用的是firebase auth,这意味着当前用户的ID只是auth.uid

0 个答案:

没有答案