我有一个实时数据库:
users
+ 34534
+ 00123
company: "Foo2"
- 04521
- actions
- LELgkJG-4ETy3G480ru
timestamp: 1528315440019
type: "QRCODE"
- LELgkJG-4ETy3G480ru
timestamp: 1528315440000
company: "Foo"
+ 12345
因此每个用户都由一个键标识,并且每个用户都有一个操作数组。
因此用户 00123
没有操作,而用户 04521
有操作。
我想查询至少有一项操作的所有用户。是否可以?我需要对数据进行反规范化吗?
最佳答案
Firebase 数据库可以对位于您查询位置的每个子节点下的已知路径的单个属性进行排序/过滤。由于各个操作不在已知路径上,我认为您无法查询它们。
获得所需结果的最简单方法是为每个用户添加一个 actionCount
属性并保持最新,并在添加/删除操作时更新它。这样您就可以查询具有以下操作的用户:
firebase.database().ref("users").orderByChild("actionCount").startAt(1)
关于javascript - Firebase:查询具有子键的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50774035/