Firebase:是否可以通过适当的非规范化(Android SDK)进行聚合查询?

Firebase:是否可以通过适当的非规范化(Android SDK)进行聚合查询?,android,firebase,Android,Firebase,我理解,人们不能在firebase上进行聚合查询来计算统计数据和/或返回类似于关系数据库的压缩数据。我想知道数据的非规范化是否可以复制聚合 我有以下具体问题: 我有一组数据,包括id、主题、分数、作者、日期、标签和位置 我想根据一些“相似性”规则来存储这些维度中的数据,例如,同一天的所有数据拼合在一起,所有数据位于10米以内,等等,每个存储桶显示该存储桶中有多少数据以及平均分数 一旦我选择了一个bucket,就会检索底层id 给定一组检索到的ID,我下载数据或返回步骤1使用这些ID进行优化 我已

我理解,人们不能在firebase上进行聚合查询来计算统计数据和/或返回类似于关系数据库的压缩数据。我想知道数据的非规范化是否可以复制聚合

我有以下具体问题:

  • 我有一组数据,包括id、主题、分数、作者、日期、标签和位置
  • 我想根据一些“相似性”规则来存储这些维度中的数据,例如,同一天的所有数据拼合在一起,所有数据位于10米以内,等等,每个存储桶显示该存储桶中有多少数据以及平均分数
  • 一旦我选择了一个bucket,就会检索底层id
  • 给定一组检索到的ID,我下载数据或返回步骤1使用这些ID进行优化
  • 我已经阅读了Android文档,但无法找到一种方法。在Firebase中可能发生这样的事情吗?是否可以通过非规范化或上传服务器代码

    我不愿意放弃Firebase,因为它使用起来非常简单,但聚合是我应用程序的核心部分,所以希望它是

    谢谢, 里兹


    编辑:编辑以使问题更清楚。

    这听起来是可行的,而且bucketing肯定会帮助减少对(可能昂贵的)查询的需求。但在你真正编写一些代码并对数据建模之前,这是一个非常广泛的问题。如果遇到问题,我建议您先转一转,然后再发回一个更具体的问题。请注意,“10米内的所有数据位置”需要一个参考点和lat/lon查询,您可能希望使用它。谢谢。我想您以前不知道有人尝试过这个,或者可以向我指出一些文档来帮助我入门?就像我说的,我还不知道该怎么做……有没有像“count”这样的stat命令?因为你从“我知道不能在firebase上进行聚合查询来计算统计数据”开始,我假设你已经知道答案是“否”。了解位置或查询中的项目数的唯一方法是保持一个运行计数(可能使用我所评论的事务),或者下载所有子项