【问题标题】:Flutter/Firebase application stream builder load dataFlutter/Firebase 应用程序流构建器加载数据
【发布时间】:2021-10-22 20:21:18
【问题描述】:

我正在使用 Flutter 开发移动应用程序。

在我的应用程序中,我进行了实时消息传递。

通过获得更多用户,聊天室中有很多聊天。

我只是想知道如何获取数据,每当我向上滚动而不是所有处于初始状态的数据时。

StreamBuilder<QuerySnapshot>(
  stream: controller.stream,
  builder: (context, snapshots) {
    if (!snapshots.hasData) {
      return Container();
    } else {
      List<MessageBox> messages = [];
      snapshots.data.docs.forEach((msg) {
        ChatMessage message = ChatMessage.fromDocument(msg);
        if (messages.length != 0) {
          DateTime preTime =
              messages[messages.length - 1].chatMessage.time;
          DateTime thisTime = message.time;
          if (preTime.year != thisTime.year ||
              preTime.month != thisTime.month ||
              preTime.day != thisTime.day) {
            messages.add(MessageBox(
              curreuntUserID: authentication.currentUser.userID,
              isCurrentUserMessage:
                  authentication.currentUser.userID ==
                      ChatMessage.fromDocument(msg).senderID,
              chatMessage: ChatMessage(
                  tagedUserIDList: null,
                  time: preTime,
                  messageID: null,
                  message: null,
                  messageType: null,
                  recieverID: null,
                  senderID: null,
                  imageURLs: null),
            ));
          }
        }
        messages.add(MessageBox(
          curreuntUserID: authentication.currentUser.userID,
          chatMessage: message,
          isCurrentUserMessage: authentication.currentUser.userID ==
              ChatMessage.fromDocument(msg).senderID,
        ));
      });
      return MediaQuery.removePadding(
        context: context,
        removeBottom: true,
        child: ListView(
          reverse: true,
          children: messages,
        ),
      );
    }

【问题讨论】:

标签: firebase flutter google-cloud-firestore


【解决方案1】:

如果您希望数据在滚动时加载,请使用 ListView.builder。这只会在屏幕上呈现文本,略高于/低于。

【讨论】:

    猜你喜欢
    • 2021-01-10
    • 1970-01-01
    • 2013-11-18
    • 2019-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-18
    相关资源
    最近更新 更多