Какова рекомендуемая архитектура для групп пользователей в приложении с естественной реакцией? - PullRequest
0 голосов
/ 26 июня 2019

Какая рекомендуемая архитектура для групп пользователей в приложении с естественной реакцией? Я создал простое приложение с https://github.com/mcnamee/react-native-starter-kit, которое использует FireBase и хотел бы изменить его в соответствии со своими потребностями, но не уверен, как этого добиться.

Я хочу разрешить пользователям входить во многие группы, если они того пожелают (аналогично групповым сообщениям, когда пользователь может выбрать своих друзей в составе группы). Таким образом, если есть три пользователя user1, user2 и user3, потенциально может быть group1, которая содержит user1 / user2 и group2, которая содержит user2 / user3.

В настройке реляционной БД я мог бы просто использовать внешние ключи для выражения этих отношений, но в БД NoSQL, таких как firebase, структура, кажется, сильно отличается.

Есть ли рекомендуемый подход? Есть ли примеры приложений, которые реализуют где-то похожую функциональность?

Я совершенно новичок в разработке мобильных приложений и не хочу идти по неверному пути с самого начала, поэтому любые советы очень ценятся.

1 Ответ

1 голос
/ 26 июня 2019

Я сделал что-то подобное.

в firebase будет таблица users, в которой будут все данные пользователя. Каждый зарегистрированный пользователь будет добавлен сюда.

Каждая группа будет добавлена ​​к groups объекту с массивом членов, который будет указывать на идентификатор пользователя в пользовательской таблице

groups:{
0: {name:'Group1',members:[3,1,8], image:''},
1: {name:'Group1',members:[3,1,8], image:''},
}

users: {
    1: {name:'user1', avatar:''},
    2: {name:'user2', avatar:''},
}

И вы правы, выбирайте правильную структуру БД, когда вы проектируете базу / камин. Приведенный мною пример - просто псевдокод, который вам нужно применить в вашем проекте.

Я могу помочь со ссылками на Github, которые используют firebase. просто запустите его, как только вы увидите структуру данных, которую они используют для лучшей реализации.

https://github.com/FirebaseExtended/firechat

https://github.com/chat-sdk/chat-sdk-android

https://github.com/AleBarreto/FirebaseAndroidChat

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...