Flutter - данные повторного заказа, хранящиеся в FireStore

Как видите, я перетаскиваю Задачи с помощью виджета ReorderableListView Flutter.

OnReorder может перетаскивать задачи вверх и вниз. Однако, когда я закрываю приложение, все задачи идут в порядке, установленном по умолчанию.

Это связано с тем, что мои данные, которые извлекаются из CloudFireStore, не меняют свой порядок, а способ их обновления при перетаскивании.

Может ли кто-нибудь мне помочь, как я могу обновить положение задач, хранящихся в виде документов в Cloud FireStore, чтобы, когда я закрываю приложение и открываю его снова, оно показывало новые обновленные позиции, а не старые позиции задачи

Код:

       child: StreamBuilder(
                    stream: FirebaseFirestore.instance
                        .collection("Tasks")
                        .doc(_email)
                        .collection("User_Tasks_List")
                        .snapshots(),
                    builder: (context, snapshot) {
                      if (!snapshot.hasData) return const Text("Loading!...");
                      _docs = snapshot.data.documents;
                      return Theme(
                        data: ThemeData(canvasColor: Colors.transparent),
                        child: ReorderableListView(
                            children: _docs
                                .map((e) => InkWell(
                                    key: ObjectKey(e),
                                    onTap: () => _popupDialog(context, e),
                                    onDoubleTap: () => FirebaseFirestore
                                            .instance
                                            .runTransaction(
                                                (transaction) async {
                                          transaction.delete(e.reference);
                                          Fluttertoast.showToast(
                                              msg: "Task has been deleted!");
                                        }),
                                    child: ViewHolder(e)))
                                .toList(),
                            onReorder: onReorder),
                      );
                    }),

1 ответ

Вы можете добавить такой параметр, как index:xк предметам в пожарном магазине. Затем вам нужно сохранить порядок элементов упорядоченного списка и сохранить их в Firestore с помощью индексов.

Когда вы выбираете элементы, вам нужно отсортировать их по этому индексу, и вы получите тот же порядок.

objects.sort((a, b) => a.index.compareTo(b.index));
Другие вопросы по тегам