在Firebase中按子集合检索集合过滤

时间:2016-10-04 13:40:08

标签: javascript firebase firebase-realtime-database

我现在正在学习Firebase,我需要检索属于用户有权访问的所有用户组的所有产品。

{
  products: {
    "prod1": {
      "name": "Product 1",
      "user-groups": {
        "usergroup1": true,
        "usergroup2": true,
        "usergroup3": true
      } 
    },
    "prod2": {
      "name": "Product 2",
      "user-groups": {
        "usergroup3": true
      } 
    }
  },

  usergroups: {
    "usergroup1": {
      "name": "User Group 1",
      "users": {
        "user1": true
      }
    },
    "usergroup2": {
      "name": "User Group 2",
      "users": {
        "user1": true
      }
    },
    "usergroup3": {
      "name": "User Group 3",
      "users": {
        "user2": true
      }
    }
  },

  users: {
    "user1": {
      "name": "User 1",
      "usergroups": {
        "usergroup1": true,
        "usergroup2": true
      }
    },
    "user2": {
      "name": "User 2",
      "usergroups": {
        "usergroup3": true
      }
    }
  }
}

在这种情况下,user1必须只能看到prod1,而user2必须看到prod1和prod2。

我确实设法检索某个用户组中的所有产品,但没有考虑用户的所有用户组。

    this.productsRef = firebase.database().ref('products')
        .orderByChild('user-groups/usergroup1')
        .equalTo(true);

0 个答案:

没有答案