Firebase Transaction [Error: Set]

Firebase Transaction [Error: Set]

我正在为节点使用 firebase,在尝试使用事务创建商店数据时,我得到:

[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]

任何关于错误代码应该是什么类型的错误的见解 signify/what 在代码中出错了?我在脚本的其他地方有几乎相同的代码,它确实有效,所以我很困惑...

提前致谢!

您看到的错误表明由于您的应用程序/代码中的其他地方写入,交易正在中止。

Firebase 事务通过将本地转换函数应用于数据的当前状态并将新状态写入服务器来工作。但是,如果您在代码的其他地方为同一路径调用了 ref.set(...)ref.update(...)ref.remove(),那么无论如何您都会破坏该路径的更改,即为什么交易中止。

如果您在跟踪该路径的更改时遇到问题,请尝试在您的应用程序开始时使用 Firebase.enableLogging(true) 以查看 Firebase 客户端在后台执行的操作。