Node.js Firebase事务[错误:设置]
我正在为节点使用firebase,当尝试使用事务创建存储数据时,我得到:Node.js Firebase事务[错误:设置],node.js,firebase,Node.js,Firebase,我正在为节点使用firebase,当尝试使用事务创建存储数据时,我得到: [Error: Set] 我很难弄清楚这个错误代码暗示了什么。我已经重新编写了代码,暂时禁用了安全规则,但我得到了相同的错误 以下是我使用的代码: myRef.child(user).transaction(function(currentData) { if (currentData === null) { //data doesn't exist
[Error: Set]
我很难弄清楚这个错误代码暗示了什么。我已经重新编写了代码,暂时禁用了安全规则,但我得到了相同的错误
以下是我使用的代码:
myRef.child(user).transaction(function(currentData) {
if (currentData === null) {
//data doesn't exist
return {
total: userTotal,
left: userLeft,
isText: userIsText
};
} else {
currentData.total += userTotal;
currentData.left += userLeft;
return {
total: currentData.total,
left: currentData.left,
isText: currentData.isText
};
}
}, function(error, committed, snapshot) {
if(error) {
console.log('@line 281: FB Tx failed', error);
} else if (!committed) {
console.log('FB Tx aborted');
}
});
当然,我得到的实际控制台错误消息是:
@line 281: FB Tx failed [Error: Set]
关于错误代码应该表示什么样的错误/代码中出了什么问题,有什么见解吗?我在脚本的其他地方有一段几乎相同的代码,实际上是有效的,所以我很困惑
提前谢谢 您看到的错误表明,由于在应用程序/代码的其他位置写入,事务正在中止 Firebase事务通过对数据的当前状态应用本地转换函数并将新状态写入服务器来工作。但是,如果您对代码中其他位置的同一路径调用了
ref.set(…)
、ref.update(…)
、或ref.remove()
,您仍将在该路径上关闭更改,这就是事务中止的原因
如果您在跟踪该路径上的更改时遇到问题,请尝试在应用程序开始时使用
Firebase.enableLogging(true)
查看Firebase客户端在引擎盖下做什么。是的,就是这样。非常感谢!谢谢你的澄清。仅供参考,这个错误非常神秘,并且花了很长时间才猜到[error:set]实际上来自Firebase。另外,我的函数对路径进行了完全不同的转换,每个路径限制1次转换是非常令人惊讶的。