栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从数据库计算产品时,Firebase变慢(Android)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从数据库计算产品时,Firebase变慢(Android)

这取决于

sport_products
节点下有多少数据(产品)以及要在其上检索数据的设备上的带宽。

因此,这将比所需的速度慢,因为您要检索所有实际产品而不是简单的计数器。为了解决这个问题,我建议您为数据库中所有产品保留一个单独的计数器,以便在用户每次添加或删除产品时都可以对其进行更新。尽管这需要更多代码来跟踪产品数量,但阅读起来将变得更加容易。

假设您有一个如下所示的数据库:

Firebase-root    |    --- productCounter: 500    |    --- sport_products|--- productId      |      --- //Product details

您可以在数据库根目录下添加计数器。要获取计数器,只需在

productCounter
属性上附加一个侦听器,然后从
DataSnapshot
对象获取值即可。由于您可能会在多用户环境中使用此应用程序,因此我建议您使用Firebase
Transaction
来增加/减少计数器,如本
帖子 中我的回答所述。

编辑:

除a之外的方法

ChildEventListener
将在各个子节点上触发,并且不携带全部结果的知识。获得
sport_products
节点乘积计数的唯一方法是在代码中保留自己的计数器,并在
onChildAdded()
方法中递增计数器,在方法中递减计数器
onChildRemoved()
。这为您提供了一个计数器,该计数器可以算出您的客户端代码已经处理了多少个子代。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/574664.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号