Firebase:查询具有子项的数据

时间:2018-06-09 11:58:08

标签: javascript firebase firebase-realtime-database

我有一个实时数据库:

  users
    + 34534
    + 00123
      company: "Foo2"
    - 04521
      - actions
        - LELgkJG-4ETy3G480ru
          timestamp: 1528315440019
          type: "QRCODE"
        - LELgkJG-4ETy3G480ru
          timestamp: 1528315440000
      company: "Foo"
    + 12345

这样每个用户都可以通过密钥识别,每个用户都有一系列操作。

因此,用户00123没有操作,而是用户04521有操作。

我想查询至少有一个操作的所有用户。可能吗?我是否需要对数据进行反规范化?

1 个答案:

答案 0 :(得分:3)

Firebase数据库可以对您查询的位置的每个子节点下的已知路径的单个属性进行排序/过滤。由于个别行为不是已知路径,因此我认为您无法查询它们。

获得所需结果的最简单方法是向每个用户添加actionCount属性并使其保持最新,并在添加/删除操作时更新该属性。这样,您可以使用以下操作查询用户:

firebase.database().ref("users").orderByChild("actionCount").startAt(1)