基于Firebase的移动应用数据服务器设计

Posted

技术标签:

【中文标题】基于Firebase的移动应用数据服务器设计【英文标题】:dataserver design based on firebase for Mobile Apps 【发布时间】:2014-02-02 20:41:45 【问题描述】:

我正在考虑使用 Firebase 作为基于移动社交网络的主要数据库,其中仅包括移动客户端(androidios)。 在社交网络场景中,每个用户在其朋友圈内只接触到有限数量的数据,Firebase 实际上运作良好。但是,我有一些担忧,我不想在任何繁重的工作开始之前解决。

我有消息和聊天功能,用户可以在其中向他的所有朋友或选定的朋友组发送消息。由于每个用户的朋友圈略有不同,因此消息(或带有引用的通知)需要发送给每个朋友。 我担心的是,如果用户有 500 个朋友,这将在应用程序内生成 500 个推送请求到具有 500 个不同 URL 的 firebase。 或者,我可以将聊天/消息存储在一个地方,但是接收消息意味着扫描 500 个不同的 url(所有朋友)以获取手机中的最新消息。无论哪种方式,我最终都会得到相同的结果。

我是否需要担心应用性能?

我的第二个想法是构建代理服务器,它负责将通知推送给朋友,这样应用程序只会向服务器发送一个请求,将消息单独推送给所有朋友。但这会增加额外的开发工作,从而增加项目的成本。

【问题讨论】:

【参考方案1】:

答案是对您的数据进行非规范化处理,并在创建消息时将它们放入人们的收件箱中。我们构建了一个名为 Firefeed 的应用来展示这种方法:http://firefeed.io/。

基本概念是在创建时创建消息的多个副本,并将副本发送到每个收件人的“收件箱”。当然,这意味着发送者在发送后无法编辑或删除,但这在大多数情况下可能是可接受的权衡。 (注意:在技术上可以编辑/删除消息,但这是一项非常昂贵的操作,因为您必须遍历整个网络才能找到副本)。

在这篇博文中有更多关于如何去规范化你的数据:https://www.firebase.com/blog/2013-04-12-denormalizing-is-normal.html

【讨论】:

谢谢,我实际上已经阅读了这篇文章,但我仍然很好奇,考虑到这一切都是在客户端完成的,可能通过移动网络,向每个盒子发送副本是否会影响性能.我们正在讨论将副本发送给成百上千的收件人。

以上是关于基于Firebase的移动应用数据服务器设计的主要内容,如果未能解决你的问题,请参考以下文章

在一个移动应用中使用来自不同 Firebase 项目的两个 Firebase 服务

基于RK3399+5G的医用视频终端设计

流行移动web技术发展与应用

网安学术基于ZooKeeper的一种分布式系统架构设计与实现

Firebase 用于基于浏览器的实时 MMO [关闭]

“基于移动(USB)端口的数据保密及信息恢复管理系统”暑期科创设计报告