基本上,我正在尝试构建一个类似Slack的web应用程序,使用React和Firebase/Firestore。我可以建立一个聊天室样的网页应用程序,用户可以创建多个渠道聊天。但是,我不知道如何复制workspace的Slack概念。以这个URL为例:https://app.slack.com/client/T01X6XXXXXX/X01X9XXXXXX,/client/:T01X6XXXXXX后的数字是工作区的唯一ID,只有被邀请的用户才能加入。一旦被邀请的用户加入,就可以看到其他用户之前创建的所有通道。随机用户无法加入此工作区,因为他们不知道工作区的ID。
因此,我的问题是:如何使用React/Firebase/Firestore这个workspace概念构建一个聊天室?我应该如何构造我的Firestore?
目前,我的Fi还原数据如下所示:
/rooms/HgUYoCYI45DCTScIMYEG/messages
房间(集合)和消息(集合)之间的数字是通道Id。通道(文档)由channelName和channelId组成。
我只是个初学者,我不知道这是不是个愚蠢的问题。谢谢您抽时间见我。
发布于 2020-10-25 15:58:08
聊天室中的每个文档都应该有一个存储用户Id的成员数组,如果用户打开某个聊天室,则检查他们的Id是否在聊天室成员数组中,如果没有重定向,也可以使用fireStore轻松地使用collection('chatrooms').where('members','array-contains',userId)查询用户聊天室。
https://stackoverflow.com/questions/64525388
复制相似问题