如何对通过StreamProvider动态创建的ListView.builder进行排序?

时间:2020-05-11 04:56:05

标签: list firebase flutter dart stream

我正在使用Stream服务来管理Firebase数据库中的数据。

我正在使用StreamProvider传递List<Habit>并在小部件中使用它,如下所示:

StreamProvider<List<Habit>>.value(
      value: HabitService(uid: user.uid).habits,
      child: Widget(),
);

然后,在Widget中,我将提供者称为创建习惯列表:

final habits = Provider.of<List<Habit>>(context) ?? [];

在数据库中,我有一个孩子的“文件”,每个子文件都有一个名为“ 里程碑”的习惯。我创建了一个Stream来检索具有UID习惯的里程碑。

因此,我在每个itemBuilder(习惯)上使用提供程序来使用习惯小部件中的里程碑,如下所示:

StreamProvider<
           List<Milestones>>.value(
                  value: MilestoneService(
                  userUID: user.uid,
                  habitUID: habits[index].uid)
                  .milestones,
                  child: HabitList(habit: habits[index]),
           ),

我将每个习惯作为小部件返回到列表视图中,但我想使用里程碑信息对习惯列表视图进行排序,在小部件返回后我无法访问该里程碑信息。

我目前正在使用ListView.builder,它会自动填充所有内容。

如果有人能帮助我改进方法或使用其他方法,我将不胜感激。

谢谢!

0 个答案:

没有答案