Firebase中用户指定的排序顺序

时间:2016-10-10 09:22:08

标签: ios sorting firebase transactions firebase-realtime-database

在iOS应用程序中,我想让用户可以更改表格中项目的排序顺序(通过拖动行并将其放在新位置)。

我在Firebase中构建了这样的数据:

{
  "items": {
    "id1": {
      "title": "A",
      "sortOrder": 2
    },
    "id2": {
      "title": "B",
      "sortOrder": 1
    },
    "id3": …
  }
}

使用queryOrderedByChild(“sortOrder”),我按照正确的顺序B,A,......得到项目。

在用户更改排序顺序后更新数据并不容易:

  • 假设用户切换A和B,则必须在事务中“同时”更改A和B的sortOrder。此外,如果假设F在A前面移动,则中间的所有项目必须调整为+ 1.
  • 如果附加了一个新项目,我们必须确保它获得下一个最高排序顺序,所以我想我们必须确定最高排序顺序,使用sortOrder + 1添加项目。如果同时另一个项目有添加了这种排序顺序,我们必须拒绝第一次尝试,重试+ 2,+ 3等..

我不确定这是否是正确的做法,是吗?是否可以使用Firebase事务实现此行为?

0 个答案:

没有答案