Firebase集合到ReorderableListView中

时间:2020-04-20 12:44:15

标签: firebase flutter google-cloud-firestore

我在Flutter中有一个Firebase集合,希望在reorderableListView中拥有它。集合中的文档具有一个“位置”字段,该字段应确定列表的顺序并在列表的重新排序时进行更新。

1 个答案:

答案 0 :(得分:0)

我终于自己解决了。

onReorder: (oldIndex, newIndex) {
  setState(() {
    List<MyObjectClass> objectList =
        myObjects
            .data;
    if (newIndex > oldIndex) {
      newIndex -= 1;
    }

    final MyObjectClass
        myObject = objectList.removeAt(oldIndex);
    objectList.insert(newIndex, myObject);

    for (MyObjectClass o in objectList) {
      o.position = objectList.indexOf(o);
      DatabaseService()
          .updateMyObjects(
              o);
    }
  });
}

这是假设您在DatabaseService()类中具有一个将Firestore集合映射到对象的函数,然后在StreamBuilder中具有ReorderableListView,该函数将其传递了所述对象“ myObjects”的快照。