我在 Android 中构建聊天应用程序的计划应该是什么?

问题描述 投票:0回答:1

我想构建一个有点像 Discord 的 Kotlin-Android 聊天应用程序(就功能而言)。

我计划拥有一个带有“记住我”功能的登录和注册系统,并使用 Google、电子邮件和 Facebook 登录。

我在用户界面方面很清楚,只是数据库的结构和模式以及应用程序后端代码的一般结构让我有点困惑,因为这是第一次尝试这个。最初,我正在做一个 Android 课程,最后有一个“Trello Clone”部分。我一开始就跟着它,但最终由于独立的部分已经过时了,我不得不脱离课程并构建我自己的最终困难的应用程序来测试我学到的东西(顺便说一句,这是课程:Android 课程

因此,在课程中,讲师使用 Firebase Firestore 和 Firebase Auth,但我想确认的是适合我的特定应用程序的方案。因此,如果有人可以提供我应该做什么的详细概述和架构,那就太好了!

[旁注:我不希望用户名是昵称,它们应该是真实姓名,所以找到在 20 次聊天中不断更改名字的人并不烦人,而且聊天应用程序的名称是“Rofo”聊天”]

android discord chat kotlin-android db-schema
1个回答
0
投票

我将从最后开始,无论您使用用户名还是全名,您都无法验证或控制用户的输入,除非您上传用户的护照或身份证。顺便说一句,这就是 Whatsapp 背后的天才,它使用电话号码作为用户名。

以下是聊天的基本 Firestore 架构

users:存储用户详细信息的集合。

uid:来自 Firebase 身份验证的用户 ID。 name:用户的真实姓名。 电子邮件:用户的电子邮件。 profilePic:用户个人资料图片的 URL。 状态:在线/离线状态。 lastSeen:上次活动的时间戳。 聊天:存储个人聊天室或直接消息的集合。

chatId:聊天的唯一 ID。 users:参与聊天的用户 ID 数组。 LastMessage:此聊天中发送的最后一条消息的预览。 时间戳:最后一条消息的时间戳。 messages:每个聊天文档内用于存储消息的子集合。

messageId:消息的唯一 ID。 senderId:发件人的用户 ID。 文本:消息的文本。 时间戳:消息的时间戳。 friendRequests:管理好友请求的集合。

requestId:请求的唯一 ID。 fromId:请求者的用户ID。 toId:被请求者的用户 ID。 状态:待定/已接受/已拒绝。

github上有很多克隆,你会在克隆代码中找到很多答案

© www.soinside.com 2019 - 2024. All rights reserved.