小编Sim*_*eon的帖子

我如何仅在模态底部工作表(而不是父页面)中执行 Navigator.push

在我的应用程序中,我试图创建一个评论部分。在本节中,我希望用户能够以类似于 YouTube 应用程序的方式回复其他用户的评论。我已经成功创建了一个模式底部表单,显示了顶级评论,并且在几个流构建器的帮助下,它运行得很好。然而,我面临的问题是二级评论(回复人们的评论)。我想让用户点击评论并进入一个页面(仍在模式底部表单中),在那里他可以看到对评论的所有回复,也可以自己发表评论,如果他按回去,他就会去回到他所在的位置,可以继续滚动浏览顶级评论。

类似于 YouTube 应用程序的外观。我的想法是在底部工作表中使用 Navigator.push,在模式底部工作表中当前现有页面的顶部覆盖一个新页面,在这个新页面中,特定评论的第二级评论(回复)是被显示。但是,当我调用 Navigator.push 时,整个页面都会发生变化。整个父页面都会转移到新页面,而不仅仅是底部工作表中的内容。所以,这就是我的问题。我对想法持开放态度。

我的评论底部表后面的代码:

  showModalBottomSheet(
  context: context,
  builder: (context) {
    return 
    Container(
      child: StatefulBuilder(
        builder: (BuildContext context, setTheModalState) {
          setModalState = setTheModalState;
          return Container(
            child: Column(
              children: <Widget>[
                Expanded(
                  child: StreamBuilder(listview))])}))}
Run Code Online (Sandbox Code Playgroud)

这就是我到目前为止所设计的。现在棘手的一点是按下回复按钮(消息图标)时在模式表中创建一个新页面

这就是我到目前为止所设计的。 现在棘手的一点是按下回复按钮(消息图标)时在模式表中创建一个新页面

这就是 YouTube 评论系统的样子。 YouTube 评论系统

评论区代码:

showModalBottomSheet(
  context: context,
  builder: (context) {
    return 
    Container(
      child: StatefulBuilder(
        builder: (BuildContext context, setTheModalState) {
          setModalState = setTheModalState;
          return Container(
            child: Column(
              children: <Widget>[
                Expanded(
                  child: StreamBuilder(
                    stream: Firestore.instance
                        .collection("Replies")
                        .document(dream.documentID)
                        .collection(dream.documentID)
                        .orderBy('time', descending: true)
                        .snapshots(),
                    builder: (context, …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-layout flutter-navigation

9
推荐指数
1
解决办法
2万
查看次数

如何在firebase firestore中合并多个流

在你说这是一个重复的问题或者我应该使用嵌套流构建器之前,请听我说。

我正在设计一个社交媒体类型的应用程序。我希望用户在他们关注的人在他们的“我的关注者帖子”集合中发布一些内容时收到更新。在应用程序中,应用程序将检查当前用户的关注列表(他关注的人)的 firebase rtdb 并列出他们的 uid。

我计划使用所述列表来创建流列表(当然按时间排序)并将它们合并到一个流中,然后将其输入到私有提要页面上的流构建器中。

在此页面上,用户将能够轻松关注他们感兴趣的人发布的内容。

我认为这样的系统比在“私人订阅源”集合中拥有文档的每个用户更具成本效益,每当有人发布内容时,该应用程序都会读取他们的关注者列表,然后立即在他们的每个人中发布更新私人饲料。因为... 想象一个拥有 200 万粉丝的人。即瞬间写入 200 万次。后来,阅读了 200 万次。我认为对于发帖人来说,将帖子放在他们的“publicFeed”中会更具成本效益,而不同的关注者只需收听该提要并与他们保持联系。

但是.. 这需要实现多个流(超过 2 个)的合并。我该怎么做呢?

我曾尝试阅读 RxDart,但它对我来说完全是希腊文。我是飞镖的初学者。我现在只编码了大约 5 个月。

merge stream firebase flutter stream-builder

6
推荐指数
1
解决办法
675
查看次数