我刚刚完成了一个基于教程的基本聊天应用程序。新消息应该显示在底部,但这并没有发生。
当我删除、保存并再次添加行中的“反转”时:
final messages = snapshot.data.documents.reversed;
然后它似乎重新排序了,但是下一条消息又变成随机的了。
唯一的区别是我正在使用更新的firebase插件。
firebase_core: 0.4.0+8 教程是 ^0.3.4
firebase_auth: 0.14.0+1 教程是 ^0.8.4+4
cloud_firestore: 0.12.9 教程是 ^0.9.13+1
MessageStream 代码:
除了无序的问题,一切都正常工作,消息已保存在 Firebase 中。也许我需要添加时间码或其他内容来使它正常工作。
欢迎提供任何帮助-谢谢。
MessageStream 代码:
class MessagesStream extends StatelessWidget {
@override
Widget build(BuildContext context) {
return StreamBuilder<QuerySnapshot>(
stream: _firestore.collection('messages').snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return Center(
child: CircularProgressIndicator(
backgroundColor: Colors.lightBlue,
),
);
}
final messages = snapshot.data.documents.reversed;
List<MessageBubble> messageBubbles = [];
for (var message in messages) {
final messageText = message.data['text'];
final messageSender = message.data['sender'];
final currentUser = loggedInUser.email;
final messageBubble = MessageBubble(
sender: messageSender,
text: messageText,
isMe: currentUser == messageSender,
);
messageBubbles.add(messageBubble);
}
return Expanded(
child: ListView(
reverse: true,
padding: EdgeInsets.symmetric(vertical: 20.0, horizontal: 10.0),
children: messageBubbles,
),
);
},
);
}
}
除了无序的问题,一切都正常工作,消息已保存在 Firebase 中。也许我需要添加时间码或其他内容来使它正常工作。
欢迎提供任何帮助-谢谢。