Flutter 如何创建具有Flatter和firestore的聊天室
我已经创建了一个与Flatter的聊天,我需要在我的应用程序中使用,其中1组用户将与另一种用户组聊天。 目前,我的聊天是以这种方式开发的,我在firebase中创建了记录,因此:Flutter 如何创建具有Flatter和firestore的聊天室,flutter,google-cloud-firestore,Flutter,Google Cloud Firestore,我已经创建了一个与Flatter的聊天,我需要在我的应用程序中使用,其中1组用户将与另一种用户组聊天。 目前,我的聊天是以这种方式开发的,我在firebase中创建了记录,因此: CollectionReference addMessage = FirebaseFirestore.instance.collection('Messages'); Future<void> createMessageRecord() { return addMessage .
CollectionReference addMessage = FirebaseFirestore.instance.collection('Messages');
Future<void> createMessageRecord() {
return addMessage
.add(
{ 'id': firebaseUser.uid,
'text': textMessage,
'timeStamp': DateTime.now().millisecondsSinceEpoch.toString(),
},
)
我展示它们:
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);
聊天效果相当不错,但所有用户当然都会有相同的聊天。
我想做的是限制聊天仅为2个用户显示。
第一个开始聊天,第二个开始聊天。
目前,我已经在firestore中创建了一个名为“Messages”的集合,并在其中创建了3个文档id
text
时间戳```
我不知道如何限制仅为这两个用户显示数据,而不是为所有消息创建一个文档。每个会话创建一个文档。这样,您将只检索相应的消息
正如@Uni在评论中提到的,你应该使用实时数据库,你也可以在网上看几个例子,看看如何做到这一点 你肯定不想使用firestore作为聊天应用。尝试使用firebase实时数据库。它是针对那个用例的,从长远来看更便宜。看一看如何构造你的聊天应用程序。你能给我举个例子吗?请“不要为所有消息创建一个文档,而是为每个会话创建一个文档,这样你只会检索相应的消息。”你能解释一下如何为每个集合创建多个文档吗?在上,这是一个关于如何在聊天应用程序示例中构造数据的清晰示例。同时请记住,StakCflow的目的是解决问题,请避免发表类似“你能给我举个例子吗”的评论
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);