Firebase 颤振-在ListTile点击时刷新ListView中的单个元素

Firebase 颤振-在ListTile点击时刷新ListView中的单个元素,firebase,listview,flutter,Firebase,Listview,Flutter,以下是我想要实现的流程: 获取项目列表并将其作为ListTile放在ListView中 项目点击更新Firebase中的项目状态(从未读到已读) 刷新列表中的单个项目 导航到其他 单击“上一步”按钮获取更新元素的列表-标记为已读 是否有可能在点击时刷新ListView中的单个元素?到目前为止,我尝试使用setState()方法,但它不起作用-项在Firebase中更新,但更改不会出现在列表中,直到我手动刷新页面 onTap函数 onTap: () { setState(() {

以下是我想要实现的流程:

  • 获取项目列表并将其作为ListTile放在ListView中
  • 项目点击更新Firebase中的项目状态(从未读到已读)
  • 刷新列表中的单个项目
  • 导航到其他
  • 单击“上一步”按钮获取更新元素的列表-标记为已读
是否有可能在点击时刷新ListView中的单个元素?到目前为止,我尝试使用setState()方法,但它不起作用-项在Firebase中更新,但更改不会出现在列表中,直到我手动刷新页面

onTap函数

onTap: () {
  setState(() {
    _notifications[index].data['viewed'] = true;
  });

  _userService.setNotificationAsClicked(_notifications[index].data['id']);
  Navigator.of(context).pushNamed(_notifications[index].data['routing']);
},
后按钮:

return Container(
  child: BackButton(
    onPressed: () {
      Navigator.pop(context);
    },
  ),
);
编辑: 当我在后退按钮中使用Navigator.of(context).pushNamed(…)而不是Navigator.pop()时,它会工作,但在这种情况下,我需要向下滚动并重新加载所有元素

我找到了解决方案

我所需要做的就是将DocumentSnapshot中的存储列表更改为DocumentSnapshot中的数据列表