如何实现 Firestore 以便用户可以对数组中的项目进行排序并同步排序顺序?例如,在待办事项列表中订购项目。
我可以想出两种选择。但他们感觉不是好主意..
在指定索引处插入项目。但我不确定如何或是否可以使用 Firestore 做到这一点?
每次添加新项目或“移动”项目时,都会将新的 sortKey 值映射到每个项目,然后更新所有项目。我也许可以用 .batch 做到这一点,但感觉效率超级低?
一定会有更好的办法! ????
使用 firebase 实时数据库更容易吗?
我建议的是有一个position
您将在文档中将其设置为浮点值的字段。通过按位置排序的查询来收听集合。然后:
- 当把一个项目放在最后时,给它一个位置
lastItem.position + 100
- 移动项目时,设置
position
to (prev.position + next.position) / 2.0
- 将项目移动到行首时,
firstItem.position / 2.0
这样您就可以连续地重新排序项目,而不必进行批量写入。让我们看一个例子:
A: 100 C: 50 C: 50
B: 200 A: 100 -> move below B B: 200
C: 300 -> move to top B: 200 A: 300
D: 400 D: 400 D: 400
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)