所以我想做的是一个聊天应用程序,但是问题是我不知道如何在两个用户之间建立连接。我所做的是,在该集合中有一个用户集合,其中一些用户拥有可以添加的朋友集合,因此我设法让用户输入朋友的电子邮件并在其中查找用户的收藏集,但我无法在用户与其好友之间建立联系以进行聊天,我当时正考虑为每个用户创建一个聊天集,但我认为这样做效率不高,仍然无法共享相同的内容收集两个用户之间的任何想法,有什么想法如何正确构造它?
在此先感谢您能提供的帮助。
答案 0 :(得分:0)
这些方法是基于Firestore的聊天的基本方法
消息收集方法:chats\{chatID}\messages\{messageID}
使用子集合,但它要求对每条消息进行唯一读取,每条消息限制为1MB。
嵌入式文档方法:chats\{chatID}.messages[]
每个聊天室只能创建一个文档,但这将达到每个文档1MB的限制
我建议您阅读this example的用例,以获取有关实现的更多想法以及如何处理1MB的限制。
在该示例中,建议使用联接查找聊天室,但这会增加数据库的复杂性,问题注释中的answer使用以下方法来生成和共享会议室ID。
使用用户ID并将其合并以生成房间ID,这种方法可以利用好友列表查找并生成房间ID
这是建议生成房间ID的代码
var chatID = 'chat_'+(user1<user2 ? user1+'_'+user2 : user2+'_'+user1);
好友列表示例:
{
userid:"user1",
"friendlist"{
"user2":"chat_user1_user2" \\result of previous code
}
}