我们将Firebase用作移动应用的后端。我们的一些用户偶尔收到错误“maxretry”,其中一个事务写入具有单个数值的路径。据我所知,我们没有多个用户或连接,也没有多次写入同一路径。可能导致这种情况的原因是什么?
我怀疑这是由使用多个小数位的浮点值引起的。这个错误发生在我本地一次,我能够通过将精度限制为两位小数来解决它。这可以吗?
- 阿尔伯特
编辑:
以下是导致此问题的代码:
return fireRef.child(fbPath).transaction(function(originalVal) {
return func(originalVal, by_value);
}, _.noop, false)
在这种情况下,func
看起来像这样:
function(originalVal, val) {
return val + (originalVal || 0);
}
答案 0 :(得分:3)
即使将精度限制为2位小数(每隔一段时间会出现maxretry
错误),问题仍然存在。
使用Firebase事务更新值时,似乎根本不应使用浮点类型。
我开始使用整数,而且还没有问题。