如何创建具有flutter和firestore的聊天室



我已经创建了一个带有flutter的聊天,我需要在我的应用程序中使用,其中1组用户将与另一种用户组聊天。目前我的聊天是以这种方式开发的,我在firebase中创建了记录,所以:

CollectionReference addMessage = FirebaseFirestore.instance.collection('Messages');
Future<void> createMessageRecord() {
return addMessage
.add(
{ 'id': firebaseUser.uid,
'text': textMessage,
'timeStamp': DateTime.now().millisecondsSinceEpoch.toString(),
},
)

我取回它们:

StreamBuilder(
stream: FirebaseFirestore.instance.collection('Messages').orderBy('timeStamp', descending: true).snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData)
return Center(child: CircularProgressIndicator());

我显示它们:

ListView.builder(
reverse: true,
padding: EdgeInsets.only(top: 15.0),
itemCount: snapshot.data.docs.length,
itemBuilder: (BuildContext context, int index) {
final message = snapshot.data.docs[index];
final bool isMe = message['id'] == firebaseUser.uid;
return _buildMessage(message, isMe);

聊天效果很好,但所有用户当然都会有相同的聊天。我想做的是限制聊天只显示给两个用户。第一个开始聊天,第二个开始聊天。目前,我已经在firestore中创建了一个名为";消息";我有三个文件idtext时间戳```我不知道如何限制显示数据只为这两个用户

您将只检索相应的消息,而不是为所有消息创建一个文档。

正如@Uni在评论中提到的那样,你应该使用实时数据库,你也可以在网上看看如何实现这一点的几个例子。例如

最新更新