我在 Firestore 中有一个文档,其中有一个类别值/字段。我通过用户界面上的单选按钮向它发送值。因此,firestore 该字段只有 1 个字符串值,总共有 4 种可能性。
UI-颜色、高度、宽度、风格 Firestore - 字段 = 类别,值 = 颜色或高度或宽度或风味
现在我想使用这些值创建图表,其中所有四个选项都显示为单独的条形图,并且它们的出现次数为频率。
我可以使用文档快照从 firestore 获取数据。但不知道如何从这里开始。
我如何创建单独的变量来捕获所有这些选项及其计数。
请帮忙,谢谢。我正在使用颤振
我如何在所有这些选项所在的位置创建单独的变量 被俘虏然后清点他们的数量?
可能的解决方案取决于您想要显示图表的位置以及您想要如何计算/准备和存储这些图表的数据。
如果您想在 Flutter 应用程序中显示图表,将数据存储在 Firestore 中是一个好方法,因为您可以使用 Flutter 插件轻松查询数据,并且可以将 Firestore 安全规则应用于图表数据,就像保护图表数据一样其他应用程序数据。
但是,您应该避免每次想要显示图表时查询“所有”Firestore 文档,因为这可能会迅速增加您的账单金额...建议的方法是维护保存聚合值的“计数器”。正如文档中所解释的:“每个计数器都是一个包含 shards 子集合的文档,计数器的值是分片值的总和”。 由于您将数据保存在一个字段中,因此一个好的方法是使用云函数来递增一组
计数器。
更准确地说,每次创建/修改文档时,云函数都会读取“一个字段”值,并根据它是 color
或
height
或
width
或 flavour
更新一个 (或更多)柜台。如果图表中的唯一维度是类别,则仅需要 4 个计数器(color
、height
、width
、flavor
)。如果您想要其他维度(例如 time
或字段的其他类别或特定值,例如不同的 colors
或不同的 heights
),您将需要更多计数器。如果您想在其他应用程序/工具中显示图表如果您需要在其他应用程序或工具中显示这些图表,例如后台应用程序或 BI/分析工具(如 Google Data Studio 或 QlikView),有一个有趣的替代方案:您可以使用名为“导出”的 Firebase 扩展,这是 Google Cloud 提供的无服务器、高度可扩展的企业数据仓库。 当数据位于 BigQuery 中时,您可以使用 SQL 语言构建 SQL 视图并准备数据以进行可视化。特别是聚合查询要容易得多,因为您使用 SQL 并且不需要维护 Firestore 计数器(如果您有很多维度,这可能会变得很麻烦)。 我最近写了一篇关于如何配置此扩展的
文章,其中包括聚合查询的简单示例。
混合两种方法 如果你想在 Flutter 应用程序中显示图表,并且你的图表非常复杂(很多维度,即许多不同的颜色、高度……按年、月、周等聚合),你可以采取两种方法的优点:
在 BigQuery 中构建一些 SQL 视图以准备图表数据