我的应用程序在Firebase数据库的带宽使用方面正在增长,我正在尝试优化我的查询以使用更少的带宽(从而降低成本),但我这样做是非常盲目的,因为没有关于我的数据库使用情况的统计信息(I无法知道哪些查询占用的带宽最多。)
有没有办法知道哪些查询占用了大量带宽?您如何优化Firebase数据库的使用?
编辑:
我有一个聊天网站,我使用messagesRef.child(conversationID).limitToLast(25).on('child_added'...
等观察者
conversationsRef.child(conversationID).('participants').on('value'...
答案 0 :(得分:3)
没有查询调优工具,如果这是您正在寻找的内容。您可以构建简单的时间日志记录,以便在发出查询之前和之后进行捕获,记录该数据,并从客户端收集数据以缩小到性能最差的数据。
如果没有看到实际的查询或数据模型,很难提供帮助。答案 1 :(得分:2)
Firebase Profiler为此节省了我的生命。 https://firebase.google.com/docs/database/usage/profile
能够确切地确定哪些参考(包括儿童)占用带宽,这使得更容易找出代码的哪一部分存在问题。
答案 2 :(得分:0)
万一你还没有使用Firebase的.indexOn()
...这是改善你的表现的最好方法(所以他们在下面说),看看Index Your Data。
Firebase的人说:
如果您事先知道索引的内容,可以通过Firebase实时数据库规则中的.indexOn规则将其定义为提高查询效果。
答案 3 :(得分:0)
非常同意ZagNut的回答。
在"然后()"上记录查询完成情况会帮助你。
您可以在客户端保留节点请求的查询计数,并将客户端ID的请求计数保存在firebase数据库的数据结构的单独节点中。
现在过滤这些查询以查找使用模式。
感谢。