我正在创建一个社交网络式的Feed,并且一直在关注Firebase博客上的指南,在整个数据库中散布我的"博客帖子".
这很有意义,适用于使用update()方法与这些帖子进行交互.但是,我不清楚如何在多个地方以原子方式执行交易.
例如,我想添加"喜欢"帖子的功能.如果我要在一个位置发布该帖子,我的代码将如下所示:
var postRef = firebaseDB.ref("posts/" + postID + "/likes");
postRef.transaction(function(likes) {
return (likes || 0) + 1;
});
Run Code Online (Sandbox Code Playgroud)
出于显而易见的原因,以下解决方案不是原子的.
var postRef1 = firebaseDB.ref("posts/" + postID + "/likes");
postRef1.transaction(function(likes) {
return (likes || 0) + 1;
});
var postRef2 = firebaseDB.ref("user/" + userID + "/posts/" + postID + "/likes");
postRef2.transaction(function(likes) {
return (likes || 0) + 1;
});
Run Code Online (Sandbox Code Playgroud)
由于交易在ref上运行,我如何能够原子地"喜欢"多个地方的帖子?