gpt4 book ai didi

android - 有效地汇总 firebase 数据

转载 作者:太空宇宙 更新时间:2023-11-03 12:15:32 25 4
gpt4 key购买 nike

我有一个应用程序,其中的 Firebase 表中有多达几千个条目。现在有人正在连接到这张表,我需要对这些项目进行计数和总结。

-itemlist
|
--1
|-x:2
--2
|-x:4

等等。一个用户可以随时连接(这意味着他以前从未见过这个表),另一个用户可以在任何给定时间更改某些值或添加值。

现在,如果我尝试将 ValueEventListener 添加到“itemlist”,如果没有新数据,它会工作,但只要我连接到一个包含 1000 个条目左右的新数据库,监听器就会调用每个这 1000 个条目之一。

我尝试使用 onChildlistener,但这第一次调用了为每个项目额外添加的 on ChildItem。有时这需要超过 2 分钟。

有没有办法获取整个数据库一次,计算它然后只监听变化?

最佳答案

Firebase 数据库没有服务器端聚合运算符,因为它们本质上与数据库的可扩展性和实时性不一致。

这为您提供了两种计算聚合的选项:

  1. 按照您已经建议的那样在客户端执行它们

  2. 保留一个运行的聚合,您可以根据每次更改更新该聚合

如果客户端已经需要显示数据,则在客户端执行聚合是一个不错的选择。例如:如果您要显示特定聊天室中的用户列表,您可以轻松地从相同的数据计算客户端的用户数量。

但是如果您不需要客户端数据,那么仅仅下载它来聚合它是一种浪费,并且会损害您应用程序的可扩展性。在这种情况下,一个选项是保留一个额外的节点来保存聚合并在每个相关的写入操作中更新它。例如:如果你想显示有多少用户注册了你的应用程序,你可以保留一个全局 /user_count 每当用户注册/注销时你都会更新它。对于此更新,您通常会使用 transaction .

关于android - 有效地汇总 firebase 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37838059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com