聊天应用程序,Firestore或实时数据库使用哪个firebase数据库?

时间:2020-02-29 11:40:30

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

我正在构建一个使用Firestore来存储大多数数据的应用程序。该应用程序具有聊天功能,我当时正在考虑使用实时数据库。将Firebase Firestore与实时数据库用于此聊天功能有什么好处?如果没有区别,我应该使用Firestore进行所有操作吗?

P.S。我已经阅读了两个https://firebase.google.com/docs/database/rtdb-vs-firestore的Firebase比较,但仍不确定该怎么做。

2 个答案:

答案 0 :(得分:2)

FB RTDB专为聊天应用程序而设计,但除了简单的查询之外,它的功能并不强大。 Firestore是为了提高查询要求而开发的,并且是较新的。更新取决于使用情况,不一定意味着更好。他们的定价模型有很大不同,因此您需要了解用例的收费方式。

当然可以同时使用。他们可以很好地协作,但是如果您只需要一个简单的聊天要求,我将使用RTDB。

PS。在RTDB中为每个新记录生成的唯一键会自动按时间顺序排列,这与为聊天应用程序设计的记录有关。需要注意的是,由于密钥是在设备上生成的,因此聊天消息可能仍会混乱,并且如果设备时钟略微不足并且消息交换很快,那么您可能会错过时机。解决方法是使用服务器时间属性写入每条记录...并使用该属性对聊天消息进行排序。希望对您的决定有所帮助。

PPS。 RTDB收取数据存储量和数据下载量的费用。 Firestore负责存储和数据库读写操作。聊天应用程序中将会有很多后者,因此我建议在Excel中运行一些假设情况。

答案 1 :(得分:1)

那么哪一个更实时?

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

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

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

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

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

这是关于Cloud Firestore的,但是我建议您先阅读以下两项主要资源:

https://firebase.google.com/docs/database/rtdb-vs-firestore https://firebase.googleblog.com/2017/10/cloud-firestore-for-rtdb-developers.html 因此,请检查每个价格模型的价格。但是恕我直言,Cloud Firestore和Firebase实时数据库都可以很好地协同工作。