我正在尝试使用React和Firebase实时数据库在一对一聊天应用程序中处理可见和不可见消息状态。
我是否可以为数据库中的每个发送消息存储以下内容:假值以及当接收方安装组件(消息)时,再次向数据库发出请求并将“ seen”的值更改为“ true”? / p>
这里有太多的数据库请求可能是个问题吗?
答案 0 :(得分:1)
将每个发送消息存储在数据库中是否是一个好习惯,请参见:假值,并且当接收方安装组件(消息)时,再次向数据库发出请求并将“ seen”的值更改为“是真的”?
我认为您不必为每条消息都这样做。
假设您有User1和User2进行了私人对话。
User1发送两条消息:
Id: 1 Message: "hello"
Id: 2 Message: "how are you"
User2然后查看消息-然后将其发送到服务器:
User: 2 ChatID: abc LastViewedMessage: 2
User1返回消息,并从服务器接收User2的lastViewedMessage id。
我看不出要以“逐个消息”的方式存储它的理由-除非您特别希望该功能仅将某些消息标记为已查看。
您还可以存储消息的时间戳和“最后查看时间”,而不是消息ID。