7ha*_*ker 21 firebase firebase-realtime-database
我知道Firebase事务会根据旧值和新值启用某些值的原子更新
但考虑到Firebase是一个实时数据库,我认为,必须谨慎使用交易而不是"实时功能"
这是一个例子:
我理解,如果您对某个值执行某些数学运算(添加"喜欢"或等效值),则使用事务是有意义的
我不明白在以下用例中使用事务是否有意义:假设文本字段可以由任意数量的用户更新,并且我们对所有更新感兴趣,因为它们实时发生.firebase建议我们在这种情况下使用交易吗?或者是值上发生的最终"持久操作",仅限于Firebase服务器时钟的每个时间戳粒度的单个"持久操作"?
还能保证事件将按照最终值的持续顺序传递吗?
Fra*_*len 19
无论何时在数据库上使用事务,都会牺牲一些可伸缩性,以便获得更强的数据一致性保证.Firebase数据库上的事务没有什么不同,除非开发人员倾向于在更高并发的情况下使用Firebase.
对于任何事务系统:保持系统可扩展性的关键是最小化竞争更新相同数据的客户端数量.对于Firebase,您可以通过在JSON树中尽可能低地运行事务来实现此目的.即计数器是在交易下可以很好地运作的一个例子.
对于较大的数据,例如文本编辑示例,使用事务将无法很好地扩展.对于这种用例,最好找到一种完全避免冲突的方法.通常,这归结为存储每个用户正在进行的增量,而不是存储更新的状态.Firepad示例就是一个很好的例子,该示例使用操作转换在Firebase数据库之上创建高度并发的协作编辑器.
归档时间: |
|
查看次数: |
10676 次 |
最近记录: |