Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase Firestore文档“太多争用”:实时数据库中有这样的事情吗?_Firebase_Firebase Realtime Database_Google Cloud Firestore - Fatal编程技术网

Firebase Firestore文档“太多争用”:实时数据库中有这样的事情吗?

Firebase Firestore文档“太多争用”:实时数据库中有这样的事情吗?,firebase,firebase-realtime-database,google-cloud-firestore,Firebase,Firebase Realtime Database,Google Cloud Firestore,我已经建立了一个应用程序,让人们出售活动门票。无论何时售出门票,我都会更新firestore中表示活动门票的文档,以更新统计信息 在高峰期,此文档可能每秒更新10倍。有时,由于存在太多争用,导致此项文档的事务失败,这会导致统计数据不准确,因为删除了统计数据更新。我想这是由于文件的高负载造成的 为了解决这个问题,我正在考虑将项目的统计信息从firestore中的项目文档移动到实时数据库。在我这么做之前,我想确保这将真正解决我在item文档上的争用问题。实时数据库能否比firestore文档更好地处

我已经建立了一个应用程序,让人们出售活动门票。无论何时售出门票,我都会更新firestore中表示活动门票的文档,以更新统计信息

在高峰期,此文档可能每秒更新10倍。有时,由于存在太多争用,导致此项文档的事务失败,这会导致统计数据不准确,因为删除了统计数据更新。我想这是由于文件的高负载造成的


为了解决这个问题,我正在考虑将项目的统计信息从firestore中的项目文档移动到实时数据库。在我这么做之前,我想确保这将真正解决我在item文档上的争用问题。实时数据库能否比firestore文档更好地处理此类负载?将此类数据移动到实时数据库是否被视为良好做法?

您遇到的问题是Firestore的问题。对单个文档的持续写入速率限制为每秒1次。您可能能够在一段时间内以比这更快的速度进行突发写入,但最终写入将失败,正如您所看到的

实时数据库具有不同的功能。它以写入整个数据库的数据总量来衡量。该限制为每分钟64MB。若你们想转移到实时数据库,只要你们在那个限制之下,你们就可以了

如果您正在Firestore中有效地实现计数器或其他一些数据聚合,那么还应该研究通过跨多个文档分片数据来绕过每文档写入限制的方法。然后,您的客户机代码必须使用所有这些文档碎片来呈现数据

至于这些方法中的任何一种是否是一种好的实践,这是一个意见问题,这与堆栈溢出无关。做任何适合您的用例的事情。我听说有人成功地使用了其中任何一种

在高峰期,此文档可能每秒更新10倍。有时,由于存在太多争用,此项文档的事务处理会失败

这是因为Firestore无法处理这样的速率。根据官方文件,关于:

文档的最大写入速率:每秒1次

有时它可能每秒写入两次甚至三次,但有时肯定会失败。每秒写入10次太多了

为了解决这个问题,我正在考虑将项目的统计信息从Firestore中的项目文档移动到实时数据库

这是一个解决方案,我甚至在这种情况下使用它

根据有关的官方文件,那里没有这种限制。但它是否适合你的需要取决于你自己


还有一件事你需要考虑,那就是。它肯定能解决你的问题。

嗨,Alex,谢谢你的回答,目前我还在开发中,无法模拟每秒10次写入,我的应用程序可能会达到这个极限。如果失败,它会抛出错误消息吗?我能知道错误消息/firebase异常代码吗?这样我就可以在发生这种情况时准备错误处理了吗?@sarah Check out。