我正在构建具有Firebase后端的Flutter应用程序,在该应用程序中,我需要多个客户端同时更新同一文档。但是每个客户端更新的字段是不同的。那么,如果我使用事务更新而不是正常地更新文档,将会有任何好处吗?
答案 0 :(得分:1)
如果客户端要使用其他字段的内容作为参考来更新字段,则您将要使用事务。因此,如果需要根据field1的内容一致地计算field2,则需要进行事务处理以确保两个字段的更新之间都没有竞争条件。
如果每个字段在逻辑上彼此完全分开,并且它们的更新之间不存在竞争条件(它们都可以彼此独立地更改),则无需交易即可更新它们。但请记住,每个文档的每秒最大写入速率为1。因此,如果有很多并发更新进来,这些更新可能会失败。在这种情况下,您希望每个字段都存在于自己的文档中。