gpt4 book ai didi

database - Firebase消息未按命令草稿保存

转载 作者:行者123 更新时间:2023-12-03 04:42:56 27 4
gpt4 key购买 nike

我基本上是在构建一个消息应用程序,用户可以在其中添加消息(任务),并将其保存在firebase中。然后应按顺序在屏幕上将其显示为“消息气泡”(屏幕底部显示最新的气泡)。消息不会按顺序显示。查看我的Firebase数据库集合,似乎未按到达时间的顺序保存消息。这是正常现象吗,是否意味着我必须对快照进行排序?我以为快照可以向我显示与发送消息完全相同的消息。

 TextField(
controller: messageTextController,
autofocus: true,
textAlign: TextAlign.center,
cursorColor: Colors.white,
style: TextStyle(color: Colors.white, fontSize: 20.0),
onChanged: (newText) {
newTaskTitle = newText;
},
),
FlatButton(
child: Text(
'Add',
style: TextStyle(
color: kSlate,
),
),
color: kSlateBorder,
onPressed: () {
messageTextController.clear();
firestore.collection('Slate1').add({
'Task': newTaskTitle,
'User': loggedInUser.email,
});
Navigator.pop(context);
},
),



Widget build(BuildContext context) {
return StreamBuilder<QuerySnapshot>(
stream: firestore.collection('Test').snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return Center(
child: CircularProgressIndicator(
backgroundColor: Colors.lightBlueAccent,
),
);
}
final messages = snapshot.data.documents.reversed;
List<MessageBubble> messageBubbles = [];
for (var message in messages) {
final messageText = message.data['Task'];
final messageSender = message.data['User'];

final currentUser = loggedInUser.email;

final messageBubble = MessageBubble(
sender: messageSender,
text: messageText,
isMe: currentUser == messageSender,
);

messageBubbles.add(messageBubble);
}

最佳答案

Firestore中的文档不是按时间自然排序的。在控制台中,它们按文档ID顺序显示。
如果要对集合中的文档强加排序,则应为此使用文档字段。考虑为每个消息添加一个时间戳字段,然后使用该时间戳添加order your query

关于database - Firebase消息未按命令草稿保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62840478/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com