首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Firestore在聊天应用程序中加载对话消息

使用Firestore在聊天应用程序中加载对话消息
EN

Stack Overflow用户
提问于 2018-11-27 17:49:19
回答 2查看 1.2K关注 0票数 0

当使用React Native和Redux构建聊天应用程序时,使用Firestore作为后端,为特定会话加载消息的最佳方式是什么?

我在开始时显示了8个聊天条目,当我单击其中一个条目时,我将看到包含20条最新消息的聊天屏幕。实现实时监听每个聊天(不是所有聊天,只是那些显示的聊天,因为使用了分页)每个人的messages集合中的20条最新消息,并事先准备好它们是不是一个好主意?

或者,在打开特定聊天的消息屏幕时加载消息是更好的主意。

我理解,作为用户体验,第一个选项更好,因为在显示聊天的前20条消息时没有延迟,但它不会消耗很多可能永远不需要的数据,因为在8次聊天中,用户可能只与2到3次交互。

除了这两个之外,还有更好的方法吗?

提前感谢!

EN

回答 2

Stack Overflow用户

发布于 2018-11-27 18:10:20

这是个好主意还是不好,你可以根据你想要创建的聊天应用来决定。这总是在你所说的延迟和你得到的数据量之间进行权衡,这些数据量可能会被用户看到也可能不会被看到。此外,如果你说你有8个聊天室,有20条消息,这意味着默认情况下,当用户打开你的聊天应用程序时,Firestore会向你收取8*20=160读取操作的费用,即使用户是否进入聊天室,我认为这不是一个好主意。如果你只有几个用户,就不会有问题,但如果你的应用增长了,你可能会重新考虑这个问题。在Firestore中,一切都是根据pricing plan的读写次数来决定的。

票数 2
EN

Stack Overflow用户

发布于 2018-11-27 18:20:36

在我看来,你应该考虑通过给应用程序提供离线功能来升级你的用户体验,而不是一次性加载所有不必要的数据。你应该为关注的聊天获取数据,并让你的应用程序记住最新的10-20条消息,这样你就可以随时同步你的数据。您可能需要考虑使用RealmSQLite

此外,为了更好地在聊天屏幕上显示聊天内容,您应该考虑让您的chat-list节点容纳每次聊天中的最后一条消息和时间戳,这样您就不必为每个聊天项目嵌套一个屏幕渲染的查询。

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

https://stackoverflow.com/questions/53496857

复制
相关文章

相似问题

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