我有一个实时数据库:
users
+ 34534
+ 00123
company: "Foo2"
- 04521
- actions
- LELgkJG-4ETy3G480ru
timestamp: 1528315440019
type: "QRCODE"
- LELgkJG-4ETy3G480ru
timestamp: 1528315440000
company: "Foo"
+ 12345
这样每个用户都可以通过密钥识别,每个用户都有一系列操作。
因此,用户00123
没有操作,而是用户04521
有操作。
我想查询至少有一个操作的所有用户。可能吗?我是否需要对数据进行反规范化?
答案 0 :(得分:3)
Firebase数据库可以对您查询的位置的每个子节点下的已知路径的单个属性进行排序/过滤。由于个别行为不是已知路径,因此我认为您无法查询它们。
获得所需结果的最简单方法是向每个用户添加actionCount
属性并使其保持最新,并在添加/删除操作时更新该属性。这样,您可以使用以下操作查询用户:
firebase.database().ref("users").orderByChild("actionCount").startAt(1)