[Дайте вам простое руководство и логику здесь]
Один из самых простых способов реализовать это с помощью Cloud Firestore .
Вам нужно создать 2 таблицы , одну для users
и одну для chat
.Пользователи будут использоваться для хранения информации о пользователях, включая UID , электронные письма , друзей (массив для хранения списка друзей), чаты (массив, для хранения списка чатов) и т. Д. Пока будет использоваться чат для хранения всех чатов.(Вы можете создать свою собственную базу данных, некоторые указания можно найти здесь )
Когда пользователь вошел в систему с Firebase Auth, вы можете запросить базу данных, чтобы получить информацию из Firestore.Предполагая, что вы помещаете все в некоторый элемент пользовательского интерфейса (recyclerview
), после того, как вы щелкнете по другу пользователя (друзья хранятся в облачном хранилище файлов, указанном выше), новый документ чата будет создан в базе данных / таблице чата и подзапись документа другого пользователя (Пользователь 2) в таблице / базе данных пользователей, обновите массив чата новым идентификатором документа.Для интерфейса пользовательского интерфейса пользователя 2 будет создан / обновлен новый чат, поскольку в Firebase есть что-то вроде onChangeListener () для обновления вашего клиента.
Вам нужно будет создать свой пользовательский интерфейс для чата, позволяющего пользователю отправлять сообщения.Пользовательский интерфейс должен получить все записи чата из документа чата.Когда какая-либо сторона отправляет новое сообщение, обновите сообщение в документе чата.
В общем, это грубая идея, вы можете получить все эти ссылки из Firebase Doc.
Для уведомления вы можете использовать Firebase Cloud Messaging для уведомления пользователя!
Фактическая функция FCM, указанная в документе:
Используя FCM, выможет уведомить клиентское приложение о доступности новой электронной почты или других данных для синхронизации.Вы можете отправлять уведомления для стимулирования повторного участия и удержания пользователей.В случаях использования, таких как обмен мгновенными сообщениями, сообщение может передавать полезную нагрузку до 4 КБ клиентскому приложению.
Следовательно, оно не предназначено для пользователя, а предназначено для администратора приложения для пользователя.для определенных событий.
Для администратора не рекомендуется постоянно вызывать администратора для производственного потребительского приложения.
P / s: я не кормлю ложкой с кодом, а чтобыпоощряйте людей учиться на собственных исследованиях.
Надеюсь, это поможет!