javascript - Firebase 中有序列表的性能

标签 javascript firebase

如果我想在 Firebase 中维护有序列表,似乎最好的方法是手动为列表中的每个项目分配优先级。这意味着如果我在列表中插入或删除一个项目,我必须更新它后面所有项目的优先级。对于列表开头的项目,这意味着更新列表中的每个项目。在这种情况下是否可以使用性能更好的数据结构或算法?

最佳答案

您可以通过适当设置元素的优先级来创建有序列表。列表中的项目按优先级按字典顺序排序,或者如果优先级可以解析为数字,则按数值排序。

如果你想将项目插入现有列表的中间,修改现有项目的优先级是可行的,但效率极低。更好的方法是在要插入值的两个项目之间选择一个优先级,然后为新项目设置该优先级。

例如,如果元素 1 的优先级为“a”,元素 2 的优先级为“b”,则可以在优先级为“aa”(或“aq”、“az”等)的两者之间插入元素 3 ).

根据我们的经验,大多数情况下,当您创建有序列表时,您不一定事先知道要插入项目的列表中的位置。例如,如果您正在为游戏创建排行榜,您事先并不知道要将新分数放在列表中的第 3 位,而是知道要将它插入分数 10000 得到的任何位置(可能恰好是第三个)。在这种情况下,只需将优先级设置为分数即可完成此操作。请在此处查看我们的排行榜示例: https://www.firebase.com/tutorial/#example-leaderboard

关于javascript - Firebase 中有序列表的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13465767/

相关文章:

javascript - 如何在融合表中使用 queryText 获取行数结果?

javascript - joomla添加改变图片的javascript

java - 如何更新 Firebase 数据库中的子节点数据?

javascript - 有没有办法根据 firebase 角色保护 url?

javascript - 我可以使用 3ds max 中的模型为 Web 创建 3D 旋转木马吗?示例包括

javascript - React 无法识别函数

javascript - DOMAttrModified 不会触发

javascript - Firebase 实时数据库规则 - 允许多个用户访问列出所有消息

java - 使用 mFusedLocationClient 获取 Firebase 服务中的当前位置

ios - 应用重新启动后 Facebook 访问 token 为零