我知道之前有人问过这个问题,firebase 官方文档也表明这两者具有完全相同的效果。
但是,由于以下几点,我在将两者视为相同时感到困惑:
考虑到上述几点,我觉得事务更新计数器更安全,特别是在例如多个客户端可以更新单个计数器的情况下,因此如果上述假设为真,则每当两个或更多客户端尝试时 FieldValue.increment() 将失败在一秒内更新计数器。但是对事务做同样的事情会有自动重试的优势,因为并发性中止。
所以我想知道的是,我的假设是否正确?如果不是,那么上述 3 件事究竟是以什么方式完成的?还考虑多个用户更新单个计数器的示例,使用事务是否比 FieldValue.increment() 有优势。
最佳答案
如果您所做的只是更新单个文档,那么使用事务而不是增量就没有优势了。但是,如果您跨多个必须是原子的文档进行更新,则需要使用事务。
关于firebase - 更新 firestore 上的计数器时,firestore 事务和 FieldValue.increment 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56652419/