我想在 Firebase 的列表中获得具有最高优先级的孩子,我该如何做到这一点而不必将所有孩子都保留在客户端?
我能想到的一种方法是在firebase中维护一个类似数据结构的链表:
head: 0
nodes:
0: {next: 10}, priority=1
10: {next: 4}, priority=23
4: {next: 2}, priority=45
2: {next: null}, priority=67
然后假设我将 0 的优先级更新为46
,这将触发on('child_moved')
事件prevChildName=4
,然后我将相应地更新节点 0、10 和 2 的头指针和下一个指针......
另一种方法是将 ID 列表保存在一个位置并相应地更新它:
list: "0, 10, 4, 2"
但是随着列表的增长,每次更新在带宽方面都会非常昂贵。
有一个更好的方法吗?