首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Firestore,原子写入/更新超过500个文档

Firestore,原子写入/更新超过500个文档
EN

Stack Overflow用户
提问于 2019-08-15 21:04:06
回答 1查看 194关注 0票数 0

使用firestore批量写入的主要原因之一是它们是原子的,并确保数据一致性。然而,他们有500次操作的限制。考虑到一个大型应用程序,人们可能在超过500个文档中对用户数据进行了反规范化。因此,当用户更新他/她的任何个人资料详细信息时,我必须在所有超过500个文档中更新它,同时保持数据一致性(原子更新)。

一个直观的解决方案是维护一个批处理数组,并跟踪失败的批处理,然后手动重试失败的批处理。

然而,我想问一下:

1)如果有任何最佳实践或其他更容易和可靠的方法来实现这一点,因为考虑到每批500次操作的限制,大多数商业应用程序都必须面临同样的问题。

2)是否有一种比仅仅去规范化数据更智能的方法,这样通过“智能方法”,数据一致性的整个问题(如上所述)可以首先被避免。

EN

回答 1

Stack Overflow用户

发布于 2019-08-15 21:30:33

一个直观的解决方案是维护一个批次数组,并跟踪失败的批次,然后手动重试失败的批次。

这是一个可行的解决方案,你可以继续下去。

1)如果有任何最佳实践或其他更容易和可靠的方法来实现这一点,因为考虑到每批500次操作的限制,大多数商业应用程序都必须面临同样的问题。

我可以告诉你我是做什么的。我通常创建一个计数器变量,并在每次向批处理添加更新操作时递增它的值。然后创建一条if语句,并在每次递增计数器时检查它是否达到500。此时,提交当前批处理,重置计数器并开始新的批处理,从您停止的地方开始。执行此操作,直到您完成所有批处理写入。

2)是否还有一种比反规范化数据更智能的方法,以便通过“该智能方法”,可以首先避免数据一致性的整个问题(如上所述)。

批量写入的问题不能通过反规范化来解决。复制数据,不是一个解决方案。

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

https://stackoverflow.com/questions/57510110

复制
相关文章

相似问题

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