我在Flutter中有一个Firebase集合,希望在reorderableListView中拥有它。集合中的文档具有一个“位置”字段,该字段应确定列表的顺序并在列表的重新排序时进行更新。
答案 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”的快照。