我正在尝试使用 React 和 Firebase 实时数据库处理一对一聊天应用中可见和不可见的消息状态。
我可以为数据库中的每条发送消息存储“seen: false”值,并且当接收者安装组件(消息)时,再次向数据库发出请求并将“seen”的值更改为“true”吗?
太多的数据库请求会成为这里的问题吗?
最佳答案
Is it a good practice to store for every send message in the database, seen: false value and when the receiver mount the component (message), to make again request to the database and change the value of “seen” to “true”?
我认为您不需要对每条消息都执行此操作。
假设您有用户 1 和用户 2 正在进行私有(private)对话。
用户1发送两条消息:
Id: 1 Message: "hello"
Id: 2 Message: "how are you"
然后,用户 2 查看消息 - 然后将其发送到服务器:
User: 2 ChatID: abc LastViewedMessage: 2
用户1返回消息,并从服务器接收用户2的lastViewedMessage ID。
我认为没有理由将其存储在“逐条消息”的基础上 - 除非您特别希望该功能仅将某些消息标记为已查看。
您还可以存储消息的时间戳和“上次查看时间”而不是消息 ID。
关于javascript - 如何处理 React/Firebase 聊天应用程序中可见/不可见的聊天消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51123052/