如何在 React/Firebase 聊天应用程序中处理可见/不可见的聊天消息?

zor*_*rro 3 javascript firebase reactjs firebase-realtime-database

I\xe2\x80\x99m 尝试使用 React 和 Firebase 实时数据库处理一对一聊天应用程序中看到和看不见的消息状态。

\n\n

我可以在数据库中存储每条发送消息,看到:错误值,并且当接收者安装组件(消息)时,再次向数据库发出请求并更改 \xe2\x80\x9cseen\xe2\x80\x9d 的值到 \xe2\x80\x9ctrue\xe2\x80\x9d?

\n\n

太多的数据库请求会成为这里的问题吗?

\n

小智 6

\n

在数据库中存储每条发送消息是否是一个好习惯:看到:错误值,并且当接收者安装组件(消息)时,再次向数据库发出请求并更改 \xe2\x80\x9cseen\xe2 的值\x80\x9d 到 \xe2\x80\x9ctrue\xe2\x80\x9d?

\n
\n\n

我认为您不需要对每条消息都执行此操作。

\n\n

假设您有 User1 和 User2 进行私人对话。

\n\n

User1 发送两条消息:

\n\n
Id: 1 Message: "hello"\nId: 2 Message: "how are you"\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后 User2 查看消息 - 然后发送到服务器:

\n\n
User: 2 ChatID: abc LastViewedMessage: 2\n
Run Code Online (Sandbox Code Playgroud)\n\n

User1 返回消息,并从服务器接收 User2 的lastViewedMessage id。

\n\n

我不认为有理由将其存储在“逐条消息”的基础上 - 除非您特别希望该功能仅将某些消息标记为已查看。

\n\n

您还可以存储消息的时间戳和“上次查看时间”而不是消息 ID。

\n