【发布时间】:2017-08-26 10:04:35
【问题描述】:
我正在努力创建一个社交网络式的提要,并且一直在关注 Firebase 博客上的 guide,以便在整个数据库中散布我的“博客文章”。
这很有意义,并且可以很好地使用 update() 方法与这些帖子进行交互。但是,我不清楚如何在多个地方以原子方式执行事务。
例如,我想添加“喜欢”帖子的功能。如果我将该帖子放在一个位置,我的代码将如下所示:
var postRef = firebaseDB.ref("posts/" + postID + "/likes");
postRef.transaction(function(likes) {
return (likes || 0) + 1;
});
出于显而易见的原因,下面的解决方案不是原子的。
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;
});
既然事务是在一个 ref 上操作的,我怎么能原子地“喜欢”多个地方的帖子?
【问题讨论】:
标签: firebase firebase-realtime-database nosql