如何在Firebase实时数据库上为聊天应用程序建模?

时间:2018-09-19 16:55:52

标签: database firebase firebase-realtime-database nosql

我正在尝试为聊天应用程序设计一个结构,包括私人消息和 通过使用实时firebase将我分组 我不知道如何设计结构 任何帮助请 我试图做这样的事情是真的 structure for chat application

Users
     |
     |_USER1
     |     |
     |     |__FRIENDS
     |     
     |_USER2
           |
           |__FRIENDS

1 个答案:

答案 0 :(得分:2)

您通常最终将在数据库中为“聊天室”建模。这样,每次对话(用户在启动应用程序时可能会看到的对话)都显示为某个根列表下的单独节点。您可能希望将每个对话的主要元数据与其实际消息及其参与者分开。

所以:

Chats
  chat1
    title: "...."
    lastUpdated: ...
  chat2
    title: "...."
    lastUpdated: ...
Messages
  chat1
    message1: { ... }
    message2: { ... }
  chat2
    message3: { ... }
    message3: { ... }
Participants
  chat1
    userid1: true
    userid2: true
  chat2
    userid1: true
    userid3: true
    userid4: true
    userid5: true

通过对每个列表中的节点使用相同的键(chat1chat2),您可以在需要时轻松查找数据以进行完整的聊天。但是,通过将它们保存在单独的顶级列表中,可以更好地保护应用程序并更好地控制加载的数据量。

另请参阅: