Firebase实时数据库或Firestore聊天应用程序?

时间:2019-08-01 09:24:05

标签: firebase firebase-realtime-database google-cloud-firestore

我们正在构建一个聊天应用程序,一对一聊天是该应用程序的主要目的,因此,目前,消息传递速度是我们的首要任务。我们需要一个后端解决方案,并且最初计划使用Firebase实时数据库。但是,随着Firestore的出现,从那以后,我们从Firebase团队那里看到了针对Firestore over Realtime数据库的许多建议。

我们同时使用了实时数据库和Firestore,因此我们非常了解两者的功能和查询能力。就我们的功能而言,任何一个都很好。但是正如我之前告诉我们的,我们主要关心的是消息传递速度。那么哪一个更实时?

2 个答案:

答案 0 :(得分:2)

  

那么哪一个更实时?

我认为没有一个比另一个更实时。

  

但是Firestore诞生了,从那以后,我们看到了很多关于Firestore的建议

是的,Firestore在Firebase实时数据库上具有一些新功能,因此被称为“新船旗”。查询性能取决于您请求的项目数,而不取决于您从中请求的项目数。因此,每次您想获取数据时,都应按比例获取数据,以保持您所谈论的速度。正如Firebase团队的人所说,Cloud Firestore保证了性能,没有慢查询,因此您的应用检索数据的时间取决于您检索的数据量,而不取决于您在Firebase服务器上拥有的数据量。换句话说,在一个集合中有1000、100万甚至10亿个文档都没关系,例如检索15个文档,总会花费相同的时间。

此性能带有一些限制,为此,我建议您查看官方文档中有关getting data in Cloud Firestore的所有部分。这就是Firestore之所以使用这些约束的原因,是因为必须维护该性能保证。但是根据我的经验,Cloud Firestore中没有无法以某种方式进行转换的“ SQL”查询。

因此请记住,从10个项目中请求10个文档还是从100.000或100.000.000.000项目中请求一个文档都没关系,结果将在准确的时间内显示出来。这里我以一个文档为例。因此,就速度而言,从1亿份中索取一份文档要比从1亿份中索取10份文档更快。因此,集合中的文档数量对查询性能没有影响。

这是关于Cloud Firestore的,但是有两个主要资源,我建议您在使用其中一种之前先阅读以下内容:

因此,请检查每个价格模型的价格。但是恕我直言,Cloud Firestore和Firebase实时数据库都可以很好地协同工作。

答案 1 :(得分:0)

在我看来,计算很简单。实时数据库 10 000 M 聊天消息数据传输 = $490。 Firestore 5 000 M 读取 = 3000 美元,5 000 M 写入 9000 美元 = 12000 美元。因此,最便宜的方法是使用实​​时数据库,并且由于存储 5 美元/GB,您需要每隔几周/几个月将消息重写到 Firestore。