我应该如何构造Firebase Firestore数据以复制Slack Web应用程序?

问题描述

基本上,我正在尝试使用React和Firebase / Firestore构建类似于Slack的Web应用程序。我可以构建一个类似于聊天室的Slack网络应用,用户可以在其中创建多个聊天渠道。但是,我不知道如何复制Slack的workspace概念。以以下URL为例:https://app.slack.com/client/T01X6XXXXXX/X01X9XXXXXX,/ client /之后的数字:T01X6XXXXXX是工作区的唯一ID,只有受邀用户才能加入。加入后,受邀用户可以看到其他用户之前创建的所有频道。随机用户无法加入该工作空间,因为他们不知道该工作空间的ID。

所以我的问题是:如何使用带有React / Firebase / Firestore的workspace概念来构建聊天室?我应该如何构造Firestore Db?

当前,我的Firestore数据如下:

/rooms/HgUYoCYI45DCTScIMYEG/messages

房间(集合)和消息(集合)之间的数字是通道ID。通道(文档)由channelNamechannelId组成。

我只是一个初学者,不知道这是一个愚蠢的问题。谢谢您的时间。

解决方法

聊天室中的每个文档都应具有一个成员数组,用于存储用户ID;如果用户打开某个聊天室,则在前端,如果不进行重定向,请检查其ID是否位于聊天室成员数组中;此外,如果您使用fireStore,则可以使用<td class="ui-resizable-column"><img *ngIf="rowData['logo']" [src]="getLogoImage(rowData['logo'])" height="50" width="50" alt="logo"></td>

轻松查询用户聊天室