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

标签 javascript reactjs firebase firebase-realtime-database

我正在尝试使用 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/

相关文章:

javascript - 带双引号的 Angular API 调用

javascript - Karma js 不会提供图片文件

javascript - VideoJS 播放器无法在 iPad 上使用 AngularJS 播放

javascript - 无法访问javascript数组中的项目

javascript - 动态导入图像(React Js)(要求 img 路径找不到模块)

javascript - 如何避免在 axios 中发送多个重复的 AJAX 请求

forms - 如何为复杂的 React 表单实现数据绑定(bind)

检索数据时Android DatabaseException错误

firebase - 没有 google-services.json 文件的 Google 登录

Angularfire2 基于角色的授权,支持页面刷新