Firestore:以下哪种数据模型效率更高

Firestore: which of the following data models would be more efficient

我正在使用 React 和 firestore 制作一个 public 聊天应用,我正在使用以下模型存储聊天:

In firebase real-time database
userid:
      username: username
      status: (online | offline)
In firestore
rooms:
      roomid:
             roomOwner: username
             participants: [username]
messages: 
      messageID:
             roomid: roomid
             from: username
             createdAt: server timestamp

所以在查询数据时我想做这样的事情:

const query = messagesRef.where('roomid', ==, "USERS_ROOMID").limit(25);

那么我应该这样做还是将房间修改为:

rooms:
     roomid:
           owner: username
           participants: [username]
           messages: //Create new collection
                   messsageId:
                              createdAt: server timestamp
                              from: username

所以,我想这里的问题是,在根级集合(第一个选项)和子集合(第二个选项)之间进行选择。

根级集合(第一个选项)通常适用于多对多关系场景。由于聊天室和消息之间没有多对多关系,因此最好避免这种情况。

对于目前的情况,第二个选项是更好的选择。它提供了大小的好处,并且仍然提供了良好的查询能力。

请参考以下Firestore官方文档: https://firebase.google.com/docs/firestore/manage-data/structure-data