Как мне разработать базовую структуру приватного чата? - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь создать базовое приложение чата, содержит только личные сообщения.

Фон

У меня есть два пользователя, пользователь A и пользователь B .

users/A
- name: "John"
users/B
- name: "Mary"

Когда пользователь A отправляет сообщение пользователю B , я создаю диалог между этими двумя. В этом случае идентификатор разговора будет A_B. Подробнее здесь.

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 . С этой структурой мне просто нужно иметь идентификатор пользователя, а затем я могу получить его / ее разговоры с информацией другого пользователя.

И, конечно, у меня есть коллекция разговоров, которая включает в себя сообщения.

conversations/A_B/messages # A_B is conversationId between user A and user B
 - text: "hey"
 - sender: "A"

Вопрос

Итак, как мне улучшить структуру моей базы данных, в частности, коллекцию пользовательских разговоров. Потому что, когда кто-то хочет читать или писать в разговорах / A_B, я хочу быть уверен, что пользователю разрешено писать, и я смог бы достичь этого только в том случае, если у меня имеется диалоге ID, связанном с пользователем.

...