javascript - Firebase:查询具有子键的数据

标签 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 有操作。

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

最佳答案

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

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

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

关于javascript - Firebase:查询具有子键的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50774035/

相关文章:

javascript - 三星智能电视如何清除应用程序缓存

javascript - 如何在 jQuery 函数 text() 中添加新行

javascript - 在 javascript 中订购键/值对集合的最佳实践?

firebase - 在 Firestore 安全规则中创建新文档时如何验证另一个文档引用

android - 在 firebase.auth().signOut() 之后,当我尝试在不注册的情况下再次登录时,它不起作用

ios - 将 Firebase 数据合并到 TableView 中

firebase-realtime-database - 如何在firebase实时数据库的安全规则中授予对UID列表的访问权限

javascript - 带选择的动态表单输入

java - 如何从 Firebase 获取数组列表对象

java - 无法将 result.getContents() 中的文本值传递到 myRef DatabaseReference 中以删除相应的键