【发布时间】: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