node.js - Firebase 中嵌套事务的含义?

标签 node.js firebase

我正在运行一个事务来更新需要存储在两个键中的项目。为此,我设置了一个嵌套事务,如下所示,它似乎按预期运行:

firebaseOOO.child('relationships/main').child(accountID).child(friendAccountID).transaction(function(data) {
    data.prop = 'newval';
    firebaseOOO.child('relationships/main').child(friendAccountID).child(accountID).transaction(function(data) {
        return r;
    });
    return r;
});

这是否有任何陷阱或可能的意外影响?我最担心的是在负载下陷入某种事务循环,其中每个事务都会取消另一个,迫使它们重新启动,或类似情况。

有更好的方法吗?

我正在使用 NodeJS 客户端。

最佳答案

您可能不想从第一个事务的回调中开始另一个事务。无法保证您的第一笔交易的功能将运行多少次,特别是如果您尝试更新的位置有很多争用。

一个更好的解决方案(我相信您在另一个问题中想到了)是在检查第一个事务已提交后,从完成回调开始第二个事务。

关于node.js - Firebase 中嵌套事务的含义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16125334/

相关文章:

javascript - 如何将变量传递给嵌套回调函数

node.js - 如何使用 GCM 在 Node js 中的 android 设备上推送通知?

android - 添加 Firestore 依赖项时,简单程序获取 "Cannot fit requested classes in a single dex file"

firebase - Firestore HTTP 失眠查询 : Stream error in the HTTP/2 framing layer

java - Firebase 身份验证 - 显示用户信息

javascript - Javascript中的Javascript模块

node.js - Node Express,简化 mongoose 的路由回调

node.js - 在 node.js 中,如何使用 socket.io 和 express 设置 redis?具体使用 RedisStore()

javascript - TypeError : _this. props.editAp 不是一个函数

jquery - 如何在Firebase中存储HTML页面各个字段的不同副本?