我正在尝试创建一个基本的聊天应用程序,只包含私人消息。
我有两个用户,用户A 和用户B 。
users/A
- name: "John"
users/B
- name: "Mary"
当用户A 向用户B 发送消息时,我在这两个用户之间建立了对话。在这种情况下,对话ID为A_B。 Read more here.
user-conversations/A/B # A for user A, B for user B
- conversationId: A_B
user-conversations/B/A # B for user B, A for user A
- conversationId: A_B
我有用户对话集。我创建此结构的原因是,当用户A 打开应用程序时,我想显示他与用户B 的姓名和图像的对话。通过这种结构,我只需要有一个userId,然后就可以检索他/她与其他用户信息的对话。
当然,我有包含消息的对话集合。
conversations/A_B/messages # A_B is conversationId between user A and user B
- text: "hey"
- sender: "A"
因此,如何改善数据库结构,特别是用户对话集合。因为,当某人想要读取或写入对话/ A_B时,我要确保允许该用户写,并且只有当我有与该用户的对话ID关联时,我才能实现。