首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Firebase -向用户显示他们有未读消息。

Firebase -向用户显示他们有未读消息。
EN

Stack Overflow用户
提问于 2022-11-03 17:58:50
回答 1查看 37关注 0票数 0

我正试图确定处理显示用户有未读消息的最佳方法,例如,在navbar中。

目前,我对每一次谈话都有不同的文档,数据如下:

代码语言:javascript
复制
users: [ 'userId-1', 'userId-2' ]
messages: [
  {
    message: 'Test message',
    timestamp: 12345678910,
    userId: 123456
  },
  // etc...
]

目前,我正在考虑向消息对象添加一个unread属性。然后,在页面加载时,我必须获取每个文档,其中users包含currentUser id,如果messages中的任何消息对象包含unread: true属性。

但是,我必须将消息标记为read,但只对其中一个用户进行标记。所以我的数据结构已经不工作了。

而且,这在我看来并不是很好的表现,特别是当用户有大量的对话时。知道如何以不同的方式来处理这件事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-03 18:12:37

--我正试图确定处理显示用户有未读消息的最佳方法,例如在导航栏中

据我所知,您只想显示一些未读消息(或至少有一条未读消息)。如果是这样的话,您可以利用新的count() aggregation,它考虑到查询上的任何过滤器。

在我看来,您的数据模型并不是100%清晰的,但是由于您有一个用户数组,您可以有一个额外的Array字段,其中包含没有读取消息的用户。因此,在页面加载时,您需要构建该数组包含currentUser uid的所有消息的查询,然后对该查询调用getCountFromServer()

与其对与查询相对应的每条消息收取费用,倒不如对查询匹配的每批多达1000个索引条目收取一个文档读取费。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74307609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档